2014-10-06 42 views
0

我有4個表,A,B,C,D。使用左外部聯接從多個表中引入數據

A存儲我的客戶ID,B,C D存儲客戶的各種詳細信息。例如: B店教育,C店職業,D店興趣。

現在客戶可能沒有在C,d條目或它可能在B和d入境,但不是在C.

我想joing所有的四個表來選擇的所有信息。 Customer_id存在於所有四個表中。內部連接顯然不起作用。

我在考慮Left outer join。有人可以幫我解決這個問題。

+2

'左外連接'似乎是正確的選擇;你(外部)加入'Customer_id',並且在沒有找到匹配數據的行中,來自該表的值將是'NULL' – DrCopyPaste 2014-10-06 15:20:46

回答

0

LEFT OUTER JOIN只會得到列A:B匹配或B:C匹配的行,如果你想保留表C,D中某些行的值爲空,你可以先製作一個 LEFT OUTER加入A和B,然後用C和D做一個完整的外部連接,這樣你就可以保留C和D中的所有數據,如果其中有或沒有數值,則不需要任何數據。

I在事端在想是這樣的:

SELECT a.store, b.education, d.storeinterest FROM 

(
SELECT * FROM A 
LEFT OUTER JOIN B 
ON A = B 
) A 

FULL OUTER JOIN C 
    ON A = C 

FULL OUTER JOIN D 
    ON A= D 
0

沿着這些線路的東西應該讓你開始:

SELECT a.*, b.*, c.*, d.* 
FROM a LEFT OUTER JOIN b on 
a.customer_id = b.customer_id LEFT OUTER JOIN c 
on a.customer_id = c.customer_id LEFT OUTER JOIN d 
on a.customer_id = d.customer_id