需要一个MYSQL查询来比较两个表,并只输出不匹配的结果

时间:2010-04-16 15:11:54

标签: mysql database-design compare resultset

我的数据库中有两个表,一个包含一个项目列表,其中包含有关这些项目的其他信息。另一张表包含这些项目的照片列表。

items表为每个项目提供了一个唯一的标识符,在照片表中用于标识已拍摄的项目。

我需要在第二个表格中输出未链接到照片的项目列表。关于如何做到这一点的任何想法?

4 个答案:

答案 0 :(得分:4)

select i.*
from Items i
left outer join Photographs p on i.ID = p.ItemID
where p.ItemID is null

答案 1 :(得分:0)

SELECT * FROM items WHERE id NOT IN (SELECT item_id FROM photos);

应该是你想要的

答案 2 :(得分:0)

如果一个项目有多张照片,则使用不同。

SELECT * FROM items WHERE id NOT IN (SELECT distinct(item_id) FROM photos);

答案 3 :(得分:0)

SELECT id,name from tbl_item 
WHERE id NOT IN (SELECT distinct(tbl_item.id) FROM tbl_item INNER JOIN tbl_photo ON tbl_photo.pid=tbl_item.id)