2015-09-25 25 views
-1

我有三個具有相同列但行數不同的表(每次不同)。在mySQL中連接三個相同的表格

table A   table B  table C 
    (NaRows)  (NbRows)  (NcRows) 
    --------  ---------  ---------- 
ID name v1 v2 ID name v1 v2 ID name v1 v2 

我想創建一個所有記錄表(NA,NB,NC的最大值),而不dublicates

 result of query 
------------------------------------------------------------- 
A.ID A.name A.v1  A.v2  B.v1 B.v2  C.v1 C.v2 

我嘗試沒有成功的一些連接。請幫幫我 !

+0

這些表格是如何相互關聯的?你有什麼疑問?與你想要的相比,那些回報是什麼? –

+2

你應該更清楚你想要的結果。 –

+0

也有些代碼會很好。你嘗試了什麼,它是如何失敗的? –

回答

0

這個查詢

SELECT 
    a.id, 
    a.name, 
    a.v1 AS a_v1, 
    ... 
    b.v1 AS b_v1, 
    ... 
    c.v1 AS c_v1, 
    ... 
FROM 
    table_a as a, 
    table_b as b, 
    table_c as c 
WHERE 
    a.id = b.id 
    AND b.id = c.id 

會給你這樣的結果:

---------------------------------------------------------- 
a.id a.name a_v1 a_v2 b_v1 b_v2 c_v1 c_v2 

(你可以隨意命名您的結果集)

斷言:在每個表都存在每個ID(否則你可以使用連接或聯合)。

+0

但是,如果表具有不同的行數,它不會工作,是不是?如果表a有Na行,表b Nb和表c Nc,並且例如Nb> Na> Nc,那麼我希望結果表具有Nb行,其中Nath到Nbth具有a_v1 = 0和a_v2 = 0,因爲沒有' t存在於表a中,並且Ncth到Nbth行具有c_v1 = 0和c_v2 = 0,因爲表c中不存在。 – dpap