我有两张表photo
和sale
。
photo
有两列id
和url
。
sale
有两列photoID
和status
。
问题是,photo
表中的照片(行)不必在sale
表中有记录,因此我们不知道照片是否在售。
即
photo
id | url
1 | http://...
2 | http://...
3 | http://...
sale
photoID | status
1 | 'sold'
3 | 'pending'
如您所见,id 2
的照片在sale
表格中没有记录。我想要做的是从photo
表中提取所有照片,如果在sale
表中有记录,我也希望status
信息在一个查询中。我怎样才能做到这一点?
感谢。
答案 0 :(得分:4)
SELECT p.*, s.status
FROM photo p
LEFT JOIN sale s
ON p.id = s.photoID
答案 1 :(得分:0)
SELECT p.*, s.status
FROM photo p
INNER JOIN sale s
ON p.id = s.photoID
UNION
SELECT p.*, 'not on sale' AS status
FROM photo p
WHERE NOT EXISTS (
SELECT *
FROM sale s
WHERE p.id = s.photoID
);