2014-04-01 58 views
-1

我有2個表。使用查詢獲取父&子數據

(1):父表

id title 
1 service tax 
2 vat 

(2)cess_taxes:子表

id tax_id title 
1  2 cess vat 
2  1 cess service 
3  1 add. service 

我想下面數據,

id title* 
1 service tax (parent) 
2 cess service (child) 
3 add. service (child) 
4 vat (parent) 
5 cess vat (child) 

如何使用查詢獲取數據?

我試圖與左,右&內加入

SELECT t.id, t.title, c.id, c.title 
FROM `taxes` AS t 
LEFT JOIN cess_taxes AS c ON c.tax_id = t.id 
+0

還有,你試過這麼遠嗎? – Prix

+0

爲什麼downvote ??? –

回答

1
SET @rn:=0; 
SELECT @rn:[email protected]+1 AS rank, title,id 
FROM (
    SELECT title,id 
    FROM taxes 

    Union 

    SELECT c.title, 
     case when t.id=1 then 1.5 else 3 end 
    FROM cess_taxes c 
    inner join taxes t 
    on t.id=c.tax_id 


) t1 
Order By id 

SQL Fiddle Demo

+0

我得到錯誤的條款順序&如果我刪除它的順序給了我錯誤的結果。我想要父母 - >孩子 - >父母 - >孩子。你的結果是父母 - >父母 - >孩子 - >孩子。 –

+0

@TonyStark現在檢查... –

+0

它的工作正常,但我有一個查詢。如果我通過id desc更改訂單,那麼它將是vat-> cess vat-> service tax-> add。 service-> cess service.Which需要,否則它的完美。 –