我的mysql数据库中有以下表:http://i.gyazo.com/8da933221a20ecb0e8f4a8073a2a5b41.png
table: ACCOUNTS
ID NAMN
-- -----
1 Name1
2 Name2
3 Name3
4 Name4
table: SUBBED
SUBSCRIBER RECEIVER
---------- --------
1 4
1 3
我想从ID, NAME
中选择ACCOUNTS
,其中帐户X(假设ID为1的帐户)未订阅。
如果您查看该图片,则可以看到NAME = Name1
的帐户已订阅Name3
和Name4
。在这种情况下,查询应返回ACCOUNTS
ID = 2
。
有人知道查询的外观吗?
答案 0 :(得分:1)
您可能只想将left join
表格放在一起,然后找到不匹配的表格。像这样:
select a1.*
from accounts a1
left join subbed s1
on a1.id = s1.receiver
and s1.subscriber = 1
where s1.subscriber is null and a1.id <> 1;
答案 1 :(得分:0)
你可以尝试这样的事情。
SELECT ID, NAME FROM ACCOUNTS WHERE ID NOT IN (SELECT RECEIVER FROM SUBBED)
希望它有所帮助。
答案 2 :(得分:0)
Select ID, NAME
From ACCOUNTS
Where ID Not In (Select RECEIVER
From SUBBED
Where SUBSCRIBER = (Your X))