我想要获取包含照片或视频的相册类型。我不需要空白专辑。表结构如下
id catID parentID catName type
1 1 0 location album
2 2 0 color album
3 3 1 USA album
4 4 0 Illinois1 album
5 4 3 Illinois photo
6 5 3 Chicago video
7 6 2 Black photo
8 7 2 Red photo
这里我想获取具有子记录的行。即Id
1,2和3对parentid
条记录设置为3,5,6,7,8
。 ID 4
没有子记录。我想要获取记录Id 1,2,3
我使用了以下查询。
select rm.* from media rm, media as tmp
inner join tmp on rm.id = tmp.parentID and (tmp.media_type = 'photo' OR tmp.media_type = 'video');
但它不起作用。因此,我想要获取包含照片或视频的相册类型。我不需要空白专辑。
请帮帮我
答案 0 :(得分:0)
您似乎在某种程度上混淆了隐式和显式连接语法。
清理原始查询: -
SELECT DISTINCT rm.id,
rm.catID,
rm.parentID,
rm.catName,
rm.type
FROM media rm
INNER JOIN media tmp
ON rm.id = tmp.parentID
AND tmp.media_type IN ('photo', 'video')
即使他们有多个子记录,也需要返回每个父母一次。