2013-05-02 106 views
0

我有一個MySQL表這樣的 -MySQL查詢建議

ID NAME  PARENT 
===================== 
1  Class 0 
2  Math  1 
3  Physics 1 
4  Cooking 0 
5  Italian 4 
6  Chinese 4 

我想要一個查詢,會給我這個輸出 -

ID NAME 
===================== 
1  Class 
2  Math Class 
3  Physics Class 
4  Cooking 
5  Italian Cooking 
6  Chinese Cooking 

父母的名字將與孩子的名字被追加,像姓。因爲有PARENT是對ID敵不過

+0

'CONCAT'將幫助你。 – 2013-05-02 06:50:46

+0

使用concat和CASE選擇語句,,,給出一個鏡頭併發布錯誤,至少你試試 – 2013-05-02 06:52:46

+0

@javalovers爲什麼'CASE()'? – 2013-05-02 06:58:26

回答

0
SELECT t1.ID, CONCAT(t1.NAME, ' ', t2.NAME) AS NAME 
FROM your_table t1 
INNER JOIN your_table t2 ON t1.PARENT = t2.ID 
2

LEFT JOIN需要在這種情況下。

SELECT a.ID, 
     CONCAT(a.Name, ' ', COALESCE(b.name,'')) Name 
FROM TableName a 
     LEFT JOIN TableName b 
      ON a.Parent = b.ID 

你也可以使用CONCAT_WS()這樣就可以省略COALESCE()

SELECT a.ID, 
     CONCAT_WS(' ', a.Name, b.name) Name 
FROM TableName a 
     LEFT JOIN TableName b 
      ON a.Parent = b.ID