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

标签 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 被设置为 3,5,6,7,8 记录的 parentidID 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 也只需要返回每个父记录一次。

关于php mysql 在同一个表中获取具有父 ID 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35842289/

相关文章:

php - Laravel - 如何用 Eloquent 写这个?

php - 字段列表中的未知列。

mysql - 如何在mysql中选择两年之间的每一年?

php - 使用 OHO Codeigniter 备份 MySQL 数据库

php - 使用数组从多个 mysql 表中删除行

php - 在 php 中缓存动态 css 文件

php - 从复选框发布多维数组

MySQL Join a Table if Exists 问题

MySQL触发器不保存

php - 带有从表 : layout issues 打开的表的 Bootstrap 模式