我的数据库中有两个表,其中一个包含这些项目的其他信息的项目列表。另一张表包含这些项目的照片列表。需要一个MYSQL查询来比较两个表,只输出不匹配的结果
项目表为每个项目提供一个唯一的标识符,用于照片表中标识哪个项目已被拍摄。
我需要输出未链接到第二个表中的照片的项目列表。关于如何做到这一点的任何想法?
我的数据库中有两个表,其中一个包含这些项目的其他信息的项目列表。另一张表包含这些项目的照片列表。需要一个MYSQL查询来比较两个表,只输出不匹配的结果
项目表为每个项目提供一个唯一的标识符,用于照片表中标识哪个项目已被拍摄。
我需要输出未链接到第二个表中的照片的项目列表。关于如何做到这一点的任何想法?
SELECT * FROM items WHERE id NOT IN (SELECT item_id FROM photos);
应该是你想要什么
大江户,感谢您的回应 – ee12csvt 2010-04-16 17:08:48
如果我拥有这么多的数据,该怎么办? – 2013-05-19 08:07:44
select i.*
from Items i
left outer join Photographs p on i.ID = p.ItemID
where p.ItemID is null
使用不同的,如果一个项目有一个以上的照片。
SELECT * FROM items WHERE id NOT IN (SELECT distinct(item_id) FROM photos);
Salil,感谢您的回复 – ee12csvt 2010-04-16 17:08:33
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)
的可能重复http://stackoverflow.com/questions/1983790/fetch-records-from-one-table-where-theres-not-a-record-in-another – 2010-04-16 15:40:18