2016-03-07 32 views
4

我想獲取具有照片或視頻的相冊類型。我不需要空白專輯。表結構如下php mysql在同一張表中獲取具有父級ID的記錄

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被設置爲parentid3,5,6,7,8 th記錄。 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

你試過把「AND category IS NOT NULL」,而不是'category'放上你想要的列! –

回答

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

的不同要求只返回每個父母一次,即使他們有多個子記錄。

相關問題