【发布时间】:2010-04-16 15:11:54
【问题描述】:
我的数据库中有两个表,一个包含项目列表以及这些项目的其他信息。另一个表包含这些项目的照片列表。
items 表给每个item 一个唯一的标识符,它在photos 表中用来标识被拍照的item。
我需要在第二个表中输出未链接到照片的项目列表。关于如何做到这一点的任何想法?
【问题讨论】:
标签: mysql database-design compare resultset
我的数据库中有两个表,一个包含项目列表以及这些项目的其他信息。另一个表包含这些项目的照片列表。
items 表给每个item 一个唯一的标识符,它在photos 表中用来标识被拍照的item。
我需要在第二个表中输出未链接到照片的项目列表。关于如何做到这一点的任何想法?
【问题讨论】:
标签: mysql database-design compare resultset
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 item_id FROM photos);
应该是你想要的
【讨论】:
如果一件物品有不止一张照片,则使用 distinct。
SELECT * FROM items WHERE id NOT IN (SELECT distinct(item_id) FROM photos);
【讨论】:
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)
【讨论】: