MySQL - 选择除关系表中已经关联的记录之外的所有记录

时间:2017-10-19 21:23:54

标签: mysql outer-join

已经有一段时间了,因为我不得不编写原始的MySQL查询并且稍微失去了一点触摸。我在表格中有以下情况

Company     Client_Company
ID NAME     CLIENT_ID COMPANY_ID 
-------     --------------------
1  X        10         1 
2  Y        12         1
3  Z        36         3

我的场景并不真正涉及客户端,但我会使用“客户端”,因为我不想解释我在这里使用的确切实体。

因此,想象一下,我可以通过客户编辑区域内的选择框将公司与客户联系起来。我想要做的是,每当下一家公司被分配到同一个客户时,该公司就不能再出现在下拉列表中。

所以基本上我需要从Company表中选择所有记录,以显示ID = 10的客户的可用选项,但不包括ID = 1的公司(已经分配给客户10)。我该怎么做?

1 个答案:

答案 0 :(得分:-1)

这是一个简单的排除连接:

SELECT c.ID, c.NAME
FROM Company AS c
LEFT OUTER JOIN Client_Company AS cc ON c.ID=cc.COMPANY_ID AND cc.CLIENT_ID=10
WHERE cc.COMPANY_ID IS NULL