在Mysql中创建两个表之间的结果集差异

时间:2014-04-02 17:06:13

标签: php mysql sql

我有两张表,假设productsauto_assign_prod_list。我想填充一个下拉列表,其中包含auto_assign_prod_list表中不存在的products表id。

假设, 产品表包含

Id
------
1
2
3
4
5

auto_assign_prod_list表包含

Id
-----
1
5

所以,我的结果集将是

2
3
4

如何使用MySQL和PHP?

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT Id FROM product
WHERE Id NOT IN (SELECT Id FROM auto_assign_prod_list)

它将从product表中选择不在auto_assign_prod_list表中的ID。

结果:

Id
------
2
3
4

请参阅SQL Fiddle中的结果。

答案 1 :(得分:0)

使用left join

select p.id
from products p
left join auto_assign_prod_list a on a.id = p.id
where a.id is null

SQLFiddle demo

请参阅this great explanation of joins