gpt4 book ai didi

mysql - 在 SQL 中选择在一行中具有列值而在另一行中没有特定其他列值的值

转载 作者:行者123 更新时间:2023-11-29 04:39:49 24 4
gpt4 key购买 nike

从下表中,我想返回包含主题 3 但没有主题 4 的所有书籍的集合。

id  book    topic
10 1000 3
11 1000 4
12 1001 2
13 1001 3
14 1002 4
15 1003 3

正确的表格应该是:

book    
1001
1003

我用它做了一个 SQL Fiddle 来测试 here .

到目前为止,我尝试了以下操作,但它返回了 100010011003(因为我没有将两行与每一行进行比较其他的,不知道怎么做):

SELECT DISTINCT a.id
FROM TOPICS a, TOPICS b
WHERE a.id = b.id
AND a.topic = 3

AND NOT EXISTS (

SELECT DISTINCT c.id
FROM TOPICS c
WHERE a.id = c.id
AND b.topic = 4

)

最佳答案

你快到了。 not exists 条件绝对是正确的想法,您只需要应用另一个条件来检查主题 3 是否存在:

SELECT DISTINCT a.book
FROM topics a
WHERE EXISTS (SELECT *
FROM topics b
WHERE a.book = b.book AND b.topic = 3) AND
NOT EXISTS (SELECT *
FROM topics b
WHERE a.book = b.book AND b.topic = 4)

关于mysql - 在 SQL 中选择在一行中具有列值而在另一行中没有特定其他列值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237853/

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