根据两个表中的值选择行

时间:2015-05-26 00:04:17

标签: mysql sql

我的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的帐户已订阅Name3Name4。在这种情况下,查询应返回ACCOUNTS ID = 2

中的第二行

有人知道查询的外观吗?

3 个答案:

答案 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;

demo here

答案 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))