2012-11-15 60 views
1

我與MySQL很新,並安排有問題的一些表,我似乎無法找到任何地方的解決方案......MySQL的:多選和OUTER JOIN

爲了簡化,說我有兩種類型表a,b,第一個3個,第二個2個。所以a1,a2,a3我想通過第一列與b1,b2合併。

要加入A1和B1我做的:

SELECT a.column1, a.column2 
FROM table_a1 AS a 
LEFT OUTER JOIN table_b1 AS b ON (a.column1=b.column1) 

現在,我怎麼從A1選擇,A2,A3和B1與加盟,B2?

+0

你的外鍵和主鍵是什麼?不知道具體細節可能有很多方法可以做到這一點。 – adhocgeek

+0

你可以給表結構的例子數據?如果你使用sqlfiddle.com將會更好 – aykut

+0

'merge'是什麼意思? –

回答

0

看來設計可能需要一些工作。

但現在,你可以這樣做:

SELECT 
    a.column1, a.column2 
FROM 
    (SELECT * FROM table_a1 
    UNION ALL SELECT * FROM table_a2 
    UNION ALL SELECT * FROM table_a3) AS a 
LEFT OUTER JOIN 
    (SELECT * FROM table_b1 
    UNION ALL SELECT * FROM table_b2) AS b 
ON (a.column1 = b.column1) 
+0

我的一些表沒有相同的列數,所以它不起作用......應該從一開始就提到它,對不起。 感謝您的幫助,雖然 – Johann

+0

哦,它的作品,如果我當然選擇正確的數據。 似乎要做的伎倆,我會充分實施它,並得到一個確定的確認。 – Johann

+0

是的,它工作的很棒!非常感謝你們所有人,你們真棒! – Johann

0

看來,要作爲簡單的東西:

SELECT * FROM table_a1 a 
LEFT JOIN table_b1 b ON b.column1 = a.column1 

但Golez那裏有一個完全不同的答案,這讓我想到我讀過這個問題錯了=/

+0

是的,事實上,我的問題是,數據傳播到幾張不同的桌子上......這對像我這樣的新手來說很讓人頭疼^^ 無論如何,感謝您的回答 – Johann