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:何時使用哪種 SQL 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!