首頁 >資料庫 >mysql教程 >CROSS JOIN 與 INNER JOIN:何時使用哪種 SQL 連線?

CROSS JOIN 與 INNER JOIN:何時使用哪種 SQL 連線?

DDD
DDD原創
2025-01-22 10:21:10362瀏覽

CROSS JOIN vs. INNER JOIN: When to Use Which SQL Join?

SQL 中的 CROSS JOIN 與 INNER JOIN

理解 CROSS JOIN

CROSS JOIN,也稱為笛卡爾積,從兩個或多個表中檢索所有可能的行組合。它不是基於任何特定條件過濾行,而只是將每個表中的行數相乘。例如,一個表有 5 行,另一個表有 3 行,它們的 CROSS JOIN 將傳回 15 行的結果集。

範例:

考慮以下表格:

<code>Customers:
CustomerID | Age | Gender
--------- | --- | -------
C0        | 25   | Male
C1        | 30   | Female

Movies:
MovieID   | MovieName
-------   | ---------
M0        | Batman
M1        | Superman</code>

Customers 與 Movies 表之間的 CROSS JOIN 將產生以下結果集:

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman
C0 25 Male M1 Superman
C1 30 Female M0 Batman
C1 30 Female M1 Superman

理解 INNER JOIN

INNER JOIN,也稱為等值連接,基於指定的等值條件過濾來自兩個表的行。它會匹配連接列中具有相同值的那些行。例如,Customers 和 Movies 資料表基於 CustomerID 欄位的 INNER JOIN 僅傳回 CustomerID 在兩個資料表中都相符的資料列。

範例:

考慮與先前相同的表格,基於 CustomerID 的 INNER JOIN 將產生以下結果集:

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman

選擇 CROSS JOIN 和 INNER JOIN

CROSS JOIN 和 INNER JOIN 的選擇取決於所需的結果。

  • 當您想要檢索多個表中所有可能的行組合時,而不管任何過濾條件如何,請使用 CROSS JOIN
  • 當您想要基於特定的等值條件過濾行,並僅檢索兩個表中匹配的行時,請使用 INNER JOIN

以上是CROSS JOIN 與 INNER JOIN:何時使用哪種 SQL 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn