2015-10-06 27 views
-1

我有3個表。加入三個表,如給出的例子

 A       B     C 
id col1 col2   id col3 col4  sno id col5 col6 
1 arv 12   1  xcv sdf  1 2 qwe arv 
2 qwe 34        2 2 zxc cvb 
3 asd 23 

我要輸出到像

id col1  col2  col3  col4  col5  col6 
1  arv  12  xcv  sdf 
2  qwe  34      qwe  arv 
3  qwe  34      zxc  cvb 

我應該怎麼做才能得到上面的結果呢?

B ID是ID的外鍵。 sno是C中的主鍵。 C id是A id的外鍵。

+0

如何將表相互關聯? B.id是A的外鍵(與C.id相同)? –

+0

您確定C id與A和B無關嗎? – JamieD77

+1

如果'C.id'與'A'和'B'沒有關係,那麼'C'與其他表有什麼關係? –

回答

1

您可以使用下面的查詢:

SELECT @id := @id + 1 AS id, 
     A.col1, A.col2, B.col3, B.col4, C.col5, C.col6  
FROM A 
LEFT JOIN B ON A.id = B.id 
LEFT JOIN C ON A.id = C.id 
CROSS JOIN (SELECT @id := 0) AS var 
WHERE B.id IS NOT NULL OR C.id IS NOT NULL 
ORDER BY A.id, C.sno 

Demo here

0

鑑於C被相關的

SELECT A.id, A.col1, A.col2, B.col3, B.col4, C.col5, c.Col6 
FROM A 
LEFT OUTER JOIN B ON B.id = A.id 
LEFT OUTER JOIN C ON C.id = A.id