2016-11-12 49 views
0

全部, 我有幾個表,超過50,誰有一個共同的列「MYID」,並不能找出一個更簡單的方式來加入他們,而不寫一個巨大的查詢。MySQL輕鬆加入多個表

想象一下下面的示例(僅在50桌和50個數據點)

SELECT DATAPOINT1, DATAPOINT2, DATAPOINT3, DATAPOINT4, DATAPONT5 
FROM TABLE1, TABLE2, TABLE3, TABLE4, TABLE5 
WHERE TABLE1.MYID = TABLE2.MYID, MYTABLE2.MYID=MYTABLE3.MYID, MYTABLE4.MYID=MYTABLE5.MYID 

我將如何實現用更短的查詢上述結果?

+1

那麼你的標題使用單詞JOIN。爲什麼不通過使用MYSQL JOIN語法 – RiggsFolly

+1

50表開始?聽起來像一個數據庫設計錯誤是在設計過程中早些時候做出的 – RiggsFolly

+0

它可能是設計錯誤,我可以重做整個模式,但我總是想知道這個,所以我對這個答案感興趣 – user3780616

回答

0

看起來像一個可怕的數據庫設計。您顯示的查詢是關於您需要的。許多桌子都要加入,但這就是給定設計的方式。它不能縮短,因爲您需要列出所有列,所有表格和所有標準。沒有什麼可以移除的。

通過適當的聯接語法:

select 
    t1.datapoint1, 
    t2.datapoint2, 
    t3.datapoint3, 
    ... 
from table1 t1 
join table2 t2 on t2.myid = t1.myid 
join table3 t3 on t3.myid = t1.myid 
join ... 

很容易與編程語言循環或Excel例如產生。

+0

謝謝。順便一提。我改變了模式在一張桌子上,但想問問題,而我的腦海裏卻是新鮮的。 – user3780616