我有一個表,其中存儲了父級id的類別。以下是表結構 我需要的是讓家長和在單個查詢ID 4的細節,而不會PHP遞歸Mysql查詢在單個查詢中獲取父級詳細信息
id | CategoryName | parentid
1 Web 0
2 Software 0
3 PHP 1
4 Arrays 3
我有一個表,其中存儲了父級id的類別。以下是表結構 我需要的是讓家長和在單個查詢ID 4的細節,而不會PHP遞歸Mysql查詢在單個查詢中獲取父級詳細信息
id | CategoryName | parentid
1 Web 0
2 Software 0
3 PHP 1
4 Arrays 3
自連接應足以在這裏。您的目標是將自己的表加入表中,同時將主行的parentid
與其父行的id
相關聯。
SELECT
me.id AS me_id,
me.CategoryName AS me_category,
parent.id AS parent_id,
parent.CategoryName AS parent_category
FROM
tablename me JOIN tablename parent ON me.parentid = parent.id
WHERE me.id = 4
+1我剛纔提出的建議。 –
感謝邁克爾的回覆,但問題。根據你的查詢,我只能得到2個級別 –
@Anish Joseph你需要解釋你的意思是什麼__數量的levels_。您問題中的示例表格沒有說明這一點。您顯示從小孩到父母的1:1關係。 –
會的
select * from categories t1 join categories t2 where t1.parentid=t2.id
工作的你
不,所有的數據都在同一個表中,沒有't1'或't2' –
@Rikudo Sennin t1和t2是別名,它是自加入。 – varela
可能重複的變化[PHP/MySQL的:檢索在鄰接表模型的單一路徑(http://stackoverflow.com/questions/3627878/php-mysql-retrieve -a-single-path-in-the-adjacency-list-model) –
你的意思是說你想檢索完整的繼承鏈嗎? 'child - > parent - > parent - > parent - > ... 0'?沒有遞歸就無法完成。 –
雅,這是我一直在尋找..謝謝邁克爾.. –