我正在尝试执行一个 SELECT 查询,该查询仅在第三个表中不存在某些数据时才从两个表中获取数据。以下是三张表:
博客
id | blog_name
精选提要
id | blog_id
订阅
id | member_id | blog_id
我想返回 Featured Feeds 表中列出的那些的 blog_id 和 blog_name,但排除用户 (member_id) 在 Subscriptions 表中已经订阅的 Featured Feeds。这是我到目前为止的查询(使用 3 作为 member_id - 请注意表名与上面略有不同):
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
如果另一个用户订阅了相同的订阅源,则此查询不会排除用户订阅的精选订阅源。例如,如果 Subscriptions 表有以下行:
1 | 3 | 4
2 | 2 | 4
如果 blog_id 4 列在特色提要中,由于上面的第二行数据,我的查询仍将返回该 blog_id。我需要使用 GROUP 吗?
提前致谢!