Hallo zusammen, mir ist ein seltsames Verhalten beim Bearbeiten und Ausführen einer Abfrage im Data Explorer aufgefallen. Ich versuche, die Operatoren WHERE und IN zu verwenden, um nur Beiträge aus Themen in bestimmten Kategorien auszuwählen:
WHERE
t.category_id IN (420, 421, 426)
Ich bin mir jedoch nicht sicher, ob die WHERE-Bedingung wie erwartet funktioniert: Wenn ich die Abfrage für Zeiträume vor der Erstellung der betreffenden Kategorien ausführe, werden einfach alle Themen aufgelistet, unabhängig von der Kategorie. Außerdem ändert der IN-Operator seine Farbe nicht, und ich frage mich, ob der Data Explorer ihn als Operator erkennt:
Irgendwelche Ideen, was hier los ist? Vielen Dank!
Hmm. 
Ich habe es gestern Abend in einer sehr ähnlichen Abfrage verwendet und es hat für mich wie erwartet funktioniert.
Könnten Sie Ihre vollständige Abfrage teilen, damit wir sehen können, ob möglicherweise etwas anderes im Spiel ist?
1 „Gefällt mir“
Sicher, hier ist sie. Die Abfrage wird verwendet, um die notwendigen Informationen abzurufen, um eine benutzerdefinierte Protokolldatei zu generieren, die von Gource verarbeitet werden kann. Siehe: Custom Log Format · acaudwell/Gource Wiki · GitHub
-- Diese Abfrage ruft eine Liste der neuesten Beiträge ab,
-- zusammen mit zugehörigen Benutzerinformationen und ThemenDetails.
-- Das Ergebnis wird nach dem Erstellungsdatum in aufsteigender Reihenfolge sortiert.
-- Die ausgewählten Felder sind wie folgt:
-- timestamp: Ein ISO 8601- oder Unix-Zeitstempel, wann der Beitrag erstellt wurde.
-- username: Der Benutzername des Benutzers, der den Beitrag erstellt hat.
-- type: Ein fest codierter Wert 'A', der den Aktionstyp angibt (in diesem Fall 'Added').
-- topic: Die ID des Themas, zu dem der Beitrag gehört.
-- post_number: Die eindeutige Nummer des Beitrags innerhalb seines Themas.
-- reply_to_post_number: Die Beitragsnummer, auf die dieser Beitrag eine Antwort ist (falls vorhanden).
-- raw: Der Inhalt des Beitrags, begrenzt auf die ersten 30 Zeichen.
-- category_id: Die ID der Kategorie, zu der das Thema gehört.
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 „Gefällt mir“
Es scheint alles in Ordnung zu sein.
Wenn ich es mit unseren drei neuen Dokumentenkategorien (vor etwa 10 Tagen erstellt) unter Verwendung desselben AND t.created_at > '2022-01-01' ausführe, sehe ich keine Daten von außerhalb dieser Kategorien (viele kleine Aktionsbeiträge, die Sie je nach Anwendungsfall möglicherweise herausfiltern möchten). Wenn ich es ganz ohne AND t.created_at > '2022-01-01' ausführe, werden ebenfalls nur Daten aus diesen Kategorien abgerufen.
2 „Gefällt mir“