加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:25:51 所属栏目:PHP教程 来源:网络整理
导读:我想要获取包含照片或视频的相册类型.我不需要空白专辑.表结构如下 id catID parentID catName type1 1 0 location album2 2 0 color album3 3 1 USA album4 4 0 Illinois1 album 5 4 3 Illinois photo6 5 3 Chicago video7 6 2 Black photo8 7 2 Red photo
我想要获取包含照片或视频的相册类型.我不需要空白专辑.表结构如下

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被设置为3,5,6,7,8记录的parentid. 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');

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

请帮我

解决方法

您似乎以某种方式混淆了隐式和显式连接语法.

清理原始查询: –

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

即使它们有多个子记录,也要求distinct只返回一次父级.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读