Utilizzo dell'operatore IN in Data Explorer

Ciao a tutti, ho notato uno strano comportamento durante la modifica e l’esecuzione di una query in Data Explorer. Sto cercando di utilizzare gli operatori WHERE e IN per selezionare solo i post degli argomenti in determinate categorie:

WHERE
    t.category_id IN (420, 421, 426)

Tuttavia, non sono sicuro che la condizione WHERE funzioni come previsto: se eseguo la query per periodi antecedenti la creazione delle categorie in questione, elenca semplicemente tutti gli argomenti, indipendentemente dalla categoria. Inoltre, l’operatore IN non cambia colore e mi chiedo se Data Explorer lo riconosca come operatore:

Qualche idea su cosa stia succedendo? Grazie mille!

Hmm. :thinking:

L’ho usato in una query molto simile ieri sera e ha funzionato come previsto per me.

Potresti condividere la tua query completa in modo che possiamo vedere se potrebbe esserci qualcos’altro in gioco?

1 Mi Piace

Certo, ecco qui. La query viene utilizzata per recuperare le informazioni necessarie per generare un file di log personalizzato che può essere elaborato da Gource. Vedi: Custom Log Format · acaudwell/Gource Wiki · GitHub

-- Questa query recupera un elenco degli ultimi post,
-- insieme alle informazioni utente e ai dettagli dell'argomento associati.
-- Il risultato è ordinato per data di creazione in ordine crescente.

-- I campi selezionati sono i seguenti:
-- timestamp: un timestamp ISO 8601 o unix di quando è stato creato il post.
-- username: il nome utente dell'utente che ha creato il post.
-- type: un valore codificato 'A' che indica il tipo di azione (in questo caso, 'Aggiunto').
-- topic: l'ID dell'argomento a cui appartiene il post.
-- post_number: il numero univoco del post all'interno del suo argomento.
-- reply_to_post_number: il numero del post a cui questo post è una risposta (se presente).
-- raw: il contenuto del post, limitato ai primi 30 caratteri.
-- category_id: l'ID della categoria a cui appartiene l'argomento.

SELECT
    p.created_at as timestamp,
    u.username,
    'A' as type,
    p.topic_id as topic,
    p.post_number as post_number,
    p.reply_to_post_number as reply_to_post_number,
    SUBSTRING(p.raw, 1, 30) AS raw,
    t.category_id
FROM
    posts p
JOIN
    users u ON p.user_id = u.id
JOIN
    topics t ON p.topic_id = t.id
WHERE
    t.category_id IN (420, 421, 426)
    AND t.created_at > '2022-01-01'
ORDER BY
    p.created_at ASC
LIMIT 1000
1 Mi Piace

Sembra tutto in ordine.

Quando lo eseguo sulle nostre tre nuove categorie di documenti (create circa 10 giorni fa) usando lo stesso AND t.created_at > '2022-01-01', non vedo dati esterni a tali categorie essere estratti (molti piccoli post d’azione, che potresti voler filtrare a seconda del tuo caso d’uso). Eseguirlo completamente senza AND t.created_at > '2022-01-01' estrae solo dati da tali categorie.

2 Mi Piace