皆さん、こんにちは。Data Explorer でクエリを編集して実行する際に、奇妙な動作に気づきました。特定のカテゴリのトピックからの投稿のみを選択するために、WHERE と IN 演算子を使用しようとしています。
WHERE
t.category_id IN (420, 421, 426)
しかし、WHERE 条件が期待どおりに機能しているかどうかわかりません。問題のカテゴリが作成される前の期間に対してクエリを実行すると、カテゴリに関係なく、単にすべてのトピックがリストされます。さらに、IN 演算子の色が変わりませんが、Data Explorer が演算子として認識しているかどうか疑問に思っています。
何が起こっているのか、何かアイデアはありますか?どうぞよろしくお願いします!
うーん。
昨夜もまったく同じようなクエリで使用しましたが、期待どおりに動作しました。
何か他に原因がないか、完全なクエリを共有していただけますか?
「いいね!」 1
承知いたしました。以下に翻訳を示します。このクエリは、Gource で処理できるカスタムログファイルを生成するために必要な情報を取得するために使用されます。参照: Custom Log Format · acaudwell/Gource Wiki · GitHub
-- このクエリは、関連するユーザー情報とトピックの詳細とともに、
-- 最新の投稿のリストを取得します。
-- 結果は作成日の昇順で並べ替えられます。
-- 選択されるフィールドは次のとおりです。
-- timestamp: 投稿が作成されたときの ISO 8601 または unix タイムスタンプ。
-- username: 投稿を作成したユーザーのユーザー名。
-- type: アクションのタイプを示すハードコーディングされた値 'A' (この場合は 'Added')。
-- topic: 投稿が属するトピックの ID。
-- post_number: トピック内の投稿の一意の番号。
-- reply_to_post_number: この投稿が返信している投稿番号 (存在する場合)。
-- raw: 投稿のコンテンツで、最初の 30 文字に制限されています。
-- category_id: トピックが属するカテゴリの ID。
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
すべて順調のようです。
同じ AND t.created_at \u003e '2022-01-01' を使用して、10日ほど前に作成された3つの新しいドキュメントカテゴリに対して実行しても、それらのカテゴリ以外のデータは取得されていません(ただし、多くの小さなアクション投稿がありますが、ユースケースによっては除外したい場合があります)。 AND t.created_at \u003e '2022-01-01' を完全に削除して実行しても、これらのカテゴリからのデータのみが取得されます。
「いいね!」 2