我正在回顧一些前段時間寫到的SQL,它將4個表加入公共ID列。我開始有點偏執約我加盟,我希望有人能清楚只是這個簡單的概念對我:跨4個表加入1列 - Mysql
SELECT A.adata, B.bdata, C.cdata, D.ddata
FROM taba A, tabb B, tabc C, tabd D
WHERE A.id=B.id AND B.id=C.id AND C.id=D.id
AND A.id=C.id AND A.id=D.id AND B.id=D.id
我需要所有這些和條款,或者我可以消除過去的3,這樣:
SELECT A.adata, B.bdata, C.cdata, D.ddata
FROM taba A, tabb B, tabc C, tabd D
WHERE A.id=B.id AND B.id=C.id AND C.id=D.id
雖然我已經成功地測試了我的數據集較小的查詢,它似乎產生相同的結果,我不希望有一些不完整的SQL回來困擾我。另一方面,我不想加載不必要的條件。讓我知道我是否可以提供更多信息。
- 更新,謝謝大家的答案。關於表格:它們相對靜態,儘管行中的一些值在整個一天中都會改變。每個表A,B,C,D存儲關於OBJECT的不同信息,並且OBJECT ID在所有4箇中都是公共的,所以在這裏非常簡單。
連接完全依賴於您的表結構。一個適當規範化的設計不會有表A/C,A/D和B/D直接相互依賴,但只通過鏈接表間接依賴。 – 2011-04-25 18:27:34