2012-08-30 24 views
0

首先,對於錯誤的標題感到抱歉。我很匆忙,想不到一個更好的。MySQL-從同一表中獲取多條記錄

現在我有一個表像這樣 -

category_id name  parent_category_id 
______________________________________ 
1    country  0 
2    state  1 
3    city  2 
4    block  3 

而且我要的結果 -

Name  ParentCategory 
___________________________ 
country  NULL 
state  country 
city  state 
block  city 

現在的邏輯是ParentCategory是類別名稱,其CATEGORY_ID等於parent_category_id。 (不知道我是否正確解釋)我試了很多,爲此寫了一個查詢,但不知道我該怎麼做。

任何幫助將不勝感激。

回答

3

你想與本身JOIN表:

SELECT child.name, parent.name FROM tbl AS child 
    LEFT JOIN tbl AS parent 
    ON (child.parent_category__id = parent.category_id); 
3
SELECT 
    child.name AS Name, 
    parent.name AS ParentCategory 
FROM 
    yourTableName AS child 
    LEFT JOIN yourTableName AS parent ON parent.category_id=child.parent_category_id 
-1
SELECT t1.name, t2.name FROM table as t1 LEFT JOIN table as t2 ON t1.parent_category_id=t2.category_id 
+0

將不顯示(國家,NULL)行 –

+0

這一個(左加入而不是內在)? – lvil

1
SELECT c.name Name, 
     p.name ParentCategory 
FROM t c 
LEFT JOIN t p 
ON p.category_id=c.parent_category_id; 

See this SQLFiddle

相關問題