php mysql在同一个表中获取具有父ID的记录

时间:2016-03-07 11:15:38

标签: php mysql

我想要获取包含照片或视频的相册类型。我不需要空白专辑。表结构如下

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,8ID 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');

但它不起作用。因此,我想要获取包含照片或视频的相册类型。我不需要空白专辑。

请帮帮我

1 个答案:

答案 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')

即使他们有多个子记录,也需要返回每个父母一次。