2010-09-08 59 views
1

我得到了一個現有的產品數據庫,我正在爲其編寫一個管理工具(在PHP中)。 該數據庫包含下面的「類別」表:從一個表中選擇具有父級名稱的類別

Table Categories 
-------------------- 
PK | id 
FK | parent_id 
    | title 

現在外鍵「PARENT_ID」含有「0」同桌採取了ID,或者如果它是一個最頂層類別。

用於創建概述我現在需要一個MySQL的聲明,導致了以下數據:

id | parent_id | title | parent_title 

的PARENT_TITLE就是我不知道。我創建了以下聲明:

SELECT 
    c1.id, 
    c1.parent_id, 
    c1.title, 
    c2.title as `parent_title` 
FROM 
    categories c1, 
    categories c2 
WHERE 
    c1.parent_id = c2.id 

我現在只能拿到其中有我的父類別的所有類別。

應該很簡單,並且可能已經在此處得到解答。我認爲我只是沒有找到合適的詞來搜索現有文章來尋找它。

感謝您的幫助, 丹尼爾

回答

2

您可以使用此一LEFT OUTER JOIN

SELECT c1.id, 
    c1.parent_id, 
    c1.title, 
    c2.title as `parent_title` 
FROM categories c1 
left outer join categories c2 on c1.parent_id = c2.id 
+0

感謝您的SQL語句,這就是我一直在嘗試。 – dhh 2010-09-08 14:02:00

1

爲了讓你的思想圍繞SQL加入,請查看Jeff Atwood's Visual Guide

+0

非常感謝您的鏈接,當我想到這些連接時,我總是被卡住......不知道爲什麼... – dhh 2010-09-08 14:01:23

+0

不要擔心,它不只是你。有一個原因,我有這樣的快速訪問保存該鏈接:) – 2010-09-08 14:02:35

+0

很高興知道;-) – dhh 2010-09-08 14:04:22

相關問題