MySQL - 选择除关系 table 中已关联的记录以外的所有记录
MySQL - selecting all records except the ones already associated in the relational table
自从我不得不编写原始 MySQL 查询以来,我已经有一段时间没有联系了。我在 tables
有以下情况
Company Client_Company
ID NAME CLIENT_ID COMPANY_ID
------- --------------------
1 X 10 1
2 Y 12 1
3 Z 36 3
我的方案并没有真正涉及客户端,但我将使用 'client',因为不想解释我在这里使用的确切实体。
想象一下,我可以通过客户编辑区内的 select 框将公司与客户联系起来。我想做的是,每次将下一家公司分配给同一个客户时,该公司不得再出现在下拉列表中。
所以基本上我需要 select 公司 table 的所有记录,以显示 ID=10 的客户的可用选项,但不包括 ID=1 的公司(已分配)给客户 10).我该怎么做?
这是一个简单的排除连接:
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
自从我不得不编写原始 MySQL 查询以来,我已经有一段时间没有联系了。我在 tables
有以下情况Company Client_Company
ID NAME CLIENT_ID COMPANY_ID
------- --------------------
1 X 10 1
2 Y 12 1
3 Z 36 3
我的方案并没有真正涉及客户端,但我将使用 'client',因为不想解释我在这里使用的确切实体。
想象一下,我可以通过客户编辑区内的 select 框将公司与客户联系起来。我想做的是,每次将下一家公司分配给同一个客户时,该公司不得再出现在下拉列表中。
所以基本上我需要 select 公司 table 的所有记录,以显示 ID=10 的客户的可用选项,但不包括 ID=1 的公司(已分配)给客户 10).我该怎么做?
这是一个简单的排除连接:
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