gpt4 book ai didi

MySQL查询,其中一对值不存在于另一个表中

转载 作者:行者123 更新时间:2023-11-29 04:52:23 32 4
gpt4 key购买 nike

我正在尝试执行一个 SELECT 查询,该查询仅在第三个表中不存在某些数据时才从两个表中获取数据。这是三个表:

博客

id   |   blog_name

精选提要

id   |   blog_id

订阅

id   |   member_id   |   blog_id

我想返回特色供稿表中列出的 blog_id 和 blog_name,但排除用户 (member_id) 已在订阅表中订阅的特色供稿。这是我到目前为止的查询(使用 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

如果另一个用户订阅了相同的供稿,则此查询不会排除该用户订阅的精选供稿。例如,如果订阅表有以下行:

1   |   3   |   4
2 | 2 | 4

如果特色供稿中列出了 blog_id 4,由于上面的第二行数据,我的查询仍将返回该 blog_id。我需要使用 GROUP 吗?

提前致谢!

最佳答案

SELECT b.id, b.blog_name
FROM blogs b
INNER JOIN featured f on f.blog_id = b.id
WHERE b.id NOT IN (SELECT id FROM subscriptions WHERE member_id = 3)

关于MySQL查询,其中一对值不存在于另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273602/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com