首頁 > 資料庫 > mysql教程 > 兩次加入同一張表:何時以及如何是最佳實踐?

兩次加入同一張表:何時以及如何是最佳實踐?

Mary-Kate Olsen
發布: 2025-01-07 07:27:42
原創
243 人瀏覽過

Joining the Same Table Twice: When and How is it Best Practice?

兩次連接同一張表:最佳實踐

問題:

連接具有匹配列的兩個表時,如何你能有效率地同時檢索兩列對應的資料嗎?

方法1:加入兩次

如上例所示,兩次加入同一個表格可以依照每個配對列分別檢索資料:

SELECT t.PhoneNumber1, t.PhoneNumber2, 
       t1.SomeOtherFieldForPhone1, t2.someOtherFieldForPhone2
FROM Table1 t
JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1
JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
登入後複製

方法2 : OR 在ON子句中

另一種方法雖然沒有被證明是有效的,但會嘗試使用連接多個匹配列ON 子句中的OR:

SELECT ...
FROM Table1
INNER JOIN Table2 
   ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
      Table1.PhoneNumber2 = Table2.PhoneNumber
登入後複製

最佳實踐:

建議方法1 作為最佳解決方案。 它提供了一個簡單的解決方案以及明確的方式來檢索與多個匹配列相對應的數據,而無需依賴複雜的OR

改進設計的替代方案:

雖然這兩種方法都可以實現所需的結果,但重要的是要考慮資料庫設計最佳實踐,以避免依賴基於表之間的聯接自然鍵,例如電話號碼。自然鍵可能會頻繁更改,從而導致潛在的資料完整性問題。

以上是兩次加入同一張表:何時以及如何是最佳實踐?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板