# Query esploratore dati - nuovi argomenti per utente per tag/categoria

**URL:** <https://meta.discourse.org/t/data-explorer-query-new-topics-for-user-by-tag-category/214303>\
**Category:** Data & reporting\
**Tags:** sql-query\
**Created:** [9 Gennaio 2022, 3:02pm UTC](https://meta.discourse.org/t/data-explorer-query-new-topics-for-user-by-tag-category/214303 "2022-01-09T15:02:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Krischan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/krischan/32/47290_2.png) [@Krischan](https://meta.discourse.org/u/Krischan)\
**Post date:** [9 Gennaio 2022, 3:02pm UTC](https://meta.discourse.org/t/data-explorer-query-new-topics-for-user-by-tag-category/214303/1 "2022-01-09T15:02:16Z")

</div>

Sto cercando di creare un “motore di raccomandazione” per i miei utenti tramite l’API di Discourse che elenchi tutti gli argomenti che un utente specifico non ha ancora letto per tag/categoria. Ho esaminato le varie query esistenti, ma non ho idea da dove iniziare. Potete aiutarmi? Grazie!

---

<div class="post-metadata">

**Author:** ![Krischan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/krischan/32/47290_2.png) [@Krischan](https://meta.discourse.org/u/Krischan)\
**Post date:** [25 Gennaio 2022, 5:07pm UTC](https://meta.discourse.org/t/data-explorer-query-new-topics-for-user-by-tag-category/214303/2 "2022-01-25T17:07:37Z")

</div>

@simon Potresti aggiungere il tag qui?

---

<div class="post-metadata">

**Author:** ![saquetim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/saquetim/32/116400_2.png) [@saquetim](https://meta.discourse.org/u/saquetim)\
**Post date:** [25 Gennaio 2022, 9:08pm UTC](https://meta.discourse.org/t/data-explorer-query-new-topics-for-user-by-tag-category/214303/3 "2022-01-25T21:08:47Z")

</div>

@Krischan,

Hai controllato la tabella `post_timings`?

Qualcosa di simile elencherà gli argomenti in una categoria in cui un utente non è mai entrato o non ha letto alcun post. Non è esattamente quello che vuoi, ma è un punto di partenza.

```sql
-- [params]
-- user_id :user
-- category_id :category

SELECT t.id, t.title
FROM
  topics AS t
WHERE
  category_id = :category
AND user_id != :user
AND last_post_user_id != :user
AND deleted_at IS NULL
AND NOT EXISTS(SELECT 1 FROM post_timings AS p WHERE p.topic_id = t.id AND p.user_id = :user)

```

> [@Krischan](#):
>
> Sto cercando di costruire un “motore di raccomandazione” per i miei utenti tramite l’API di Discourse che elenchi tutti gli argomenti che un utente specifico non ha ancora letto per tag/categoria

Nota che nel tuo “motore di raccomandazione” probabilmente dovrai verificare se l’utente può vedere l’argomento prima di consigliarlo.
