2つのテーブルがあり、最初にアナウンスを格納し、2番目にアナウンスを読み込んだユーザーのリストを格納します。私はすべてのアナウンスを読み込みまたは未読のステータスでキャプチャしようとしています。 2番目のテーブルに、そのannouncement_idに対応するuser_idの行が含まれていない場合は、未読です。ここでは、それはMYSQL - 他のテーブルと結合していないすべての行を選択
お知らせのよう
id | content | announce_on
1 | foo | 2016-11-10
2 | bar | 2016-11-11
3 | zim | 2016-11-12
発表ビューカウント
id | user_id | announcement_id
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 2 | 3
(ユーザー1、ユーザー2が発表1を読んでいる、発表1と2を読んでいる)
最高どのように見えるのです私が今までに持っているものは、
SELECT
*,
a.id AS annId
FROM
announcement a
LEFT JOIN
announcement_view_count avc
ON
avc.announcement_id = a.id
WHERE
a.announce_on <= CURRENT_DATE AND (avc.user_id = 1 OR avc.user_id IS NULL)
です0
問題は私が発表3を全く得ないことです。 avc.user_id IS NULL
の部分が正常に動作していません。発表3はユーザー2が閲覧したため表示されません。
説明は難しいですが、すべてのアナウンスを読み込み、そのアナウンスが特定のユーザーによって表示されたかどうかを示す1つの列があります。 (誰が誰が利用できるか)。誰かが私にヒントを与えることができますか?
私はまた、存在していないし、試してみましたが、空の結果を返します。
を – e4c5
あなたが提供していない列名への参照をしているあなたの「これまでのベストなもの」あなたの説明。あなたが提供したテーブルデータに基づいて、日付との関係は何ですか?あなたは私たちにもっと話す必要があるのですか、すでに提供しているもの、あなたが意図したものですか? Iそれぞれ3つの列を持つ2つの表のみが表示されます。 – TimBrownlaw
申し訳ありません。私は不必要な列を含めたくありませんでした。お知らせ3が読み込まれたので、もう一度 – VeeK