我有两个表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
信息,但在单个查询中。我该怎么做呢?
谢谢。
SELECT p.*, s.status
FROM photo p
LEFT JOIN sale s
ON p.id = s.photoID
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
);