3つ目のテーブルに特定のデータが存在しない場合にのみ、2つのテーブルのデータを取得するSELECTクエリを実行しようとしています。他のテーブルに値のペアが存在しないMySQLクエリ
ブログ
フィードid | blog_id
サブスクリプション
id | member_id | blog_id
特集
id | blog_name
私がおすすめフィードにリストされているのblog_idとBLOG_NAMEを返すようにしたい:ここでは3つのテーブルがありますユーザー(member_id)がサブスクリプションで既に購読しているおすすめフィードを除外しますテーブル。ここで私は、これまで(MEMBER_IDのための3を使用して - テーブル名が上記よりも少し異なっていますのでご注意ください)しているクエリは次のとおりです。
SELECT featured_feeds.blog_id, featured_feeds.category_id, blogs.blog_name FROM featured_feeds LEFT JOIN blogs ON featured_feeds.blog_id = blogs.blog_id LEFT JOIN subscriptions ON subscriptions.blog_id = featured_feeds.blog_id WHERE subscriptions.blog_id != '3' ORDER BY blogs.blog_name ASC
このクエリは、注目を排除するものではないユーザーがいる場合に加入していることをフィード別のユーザーが同じフィードに登録されています。サブスクリプションテーブルには、次の行を持っている場合たとえば、:blog_id 4が特色のフィードに表示されている場合は
1 | 3 | 4
2 | 2 | 4
は、私のクエリはまだによる上記のデータの第2行にそのblog_idを返します。私はGROUPを使う必要がありますか?
ありがとうございます!
BLOGsには存在しないサブスクリプションからのブログのリストが必要ですか? – Starx
Feature_ Feedsテーブル(Blogsテーブルでブログ名を取得するためのJOIN)にブログのリストを追加したいのですが、それらのブログはSubscriptionテーブルに特定のmember_id(ブログはmember_id 3とblog_id 4がサブスクリプションの行)。申し訳ありません - うまくいけば、それほど混乱しにくいです。 –