2014-01-23 120 views
-1

我有以下三個表。將具有通用外鍵的兩個表(第三個表的主鍵)合併到mysql中的單個行中

表1:mymaster

id  name  age 
-------------------- 
123 fiesta  0 
124 figo  0 
125 classic 0 

表2:mychild1

id mymaster_id item itemvalue date_time 
---------------------------------------------- 
1 123   classic 800000  null 
2 125   classic 800000  null 
5 123   fiesta 1100000  null 

表3:mychild2

id mymaster_id item itemvalue date_time 
------------------------------------------- 
1 123   dzire 800000  null 
2 124   sx4 100000  null 
3 123   dzire 500000  null 

mymaster_idmychild1和外鍵10表是mymaster表的主鍵。這是我想要的輸出表。

mymaster_id id item itemvalue date_time id item itemvalue date_time 
-------------------------------------------------------------------------------- 
    123  1 classic 800000  null  1 dzire 800000  null 
    123  5 fiesta 110000  null  3 dxire 500000  null 
    124  null null null  null  2 sx4 100000  null 
    125  2 classic 800000  null  null null null  null 

我試過使用一些查詢(如下面的一個),但它沒有給我輸出表,我需要。

select mm.id,mm.name,mc1.item,mc1.itemvalue,mc2.item,mc2.itemvalue 
from mymaster mm 
    left join mychild1 mc1 on mc1.mymaster_id=mm.id 
    left join mychild2 mc2 on mc2.mymaster_id=mm.id; 

回答

0

嘗試在SELECT查詢添加GROUP BY

GROUP BY mm.mymaster_id 

你的查詢將看起來像

select mm.id,mm.name,mc1.item,mc1.itemvalue,mc2.item,mc2.itemvalue 
FROM mymaster mm 
LEFT JOIN mychild1 mc1 ON mc1.mymaster_id=mm.id 
LEFT JOIN mychild2 mc2 on mc2.mymaster_id=mm.id 
GROUP BY mm.mymaster_id; 
+0

對不起,看來我把我的輸出表錯。剛剛編輯輸出表。 –

0

或者只是:
SELECT mm.id,mm.name,mc1.item,mc1.itemvalue,mc2.item,mc2.itemvalue
FROM mymaster mm
WHERE mc1.mymaster_id=mm.id AND mc2.mymaster_id=mm.id

+0

對不起,似乎我錯誤地把我的輸出表。剛剛編輯輸出表。 –

相關問題