首頁 >資料庫 >mysql教程 >MySQL 中的預設 JOIN 類型是什麼?

MySQL 中的預設 JOIN 類型是什麼?

Patricia Arquette
Patricia Arquette原創
2024-11-16 08:56:02289瀏覽

What is the default JOIN type in MySQL and how does it differ from LEFT JOIN?

了解MySQL 中的JOIN 與LEFT JOIN

MySQL 的JOIN 操作允許我們透過指定多個資料表之間的公用列來組合來自多個表的資料。但是,了解各種連接類型之間的差異至關重要,特別是 INNER JOIN 和 LEFT JOIN。

考慮以下跨資料庫查詢:

SELECT
            `DM_Server`.`Jobs`.*,
            `DM_Server`.servers.Description AS server,
            digital_inventory.params,
            products.products_id,
            products.products_pdfupload,
            customers.customers_firstname,
            customers.customers_lastname
        FROM `DM_Server`.`Jobs`
        INNER JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50

查詢執行錯誤LEFT JOIN

當您嘗試轉換所有INNER JOIN 時如果在查詢中使用LEFT JOIN,則可能會遇到錯誤。這是因為,預設情況下,當未指定明確連線類型時,MySQL 使用 INNER JOIN。 LEFT JOIN 必須使用「LEFT JOIN」關鍵字明確指定。

預設聯接類型

與普遍看法相反,MySQL 中的預設聯結類型不是 LEFT JOIN但內連接。內部聯結僅傳回在查詢涉及的所有資料表的聯接列中具有符合值的行。

聯接的視覺表示

為了更好地理解 INNER 和 INNER 之間的區別JOIN 和 LEFT JOIN,考慮以下視覺效果表示:

  • 內連接:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1
2       | C2       | D2

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
  • 左連接:
Table 1 | Column A | Column B
--------+---------+---------
1       | A1       | B1
2       | A2       | B2

Table 2 | Column C | Column D
--------+---------+---------
1       | C1       | D1

Result:

| Column A | Column B | Column C | Column D |
|---|---|---|---|
| A1       | B1       | C1       | D1
| A2       | B2       | NULL     | NULL

如你所見, LEFT JOIN 包括左表(表 1)中的所有行,並在存在匹配時將它們與右表(表 2)中的行進行匹配。如果沒有符合項,則缺失列將包含 NULL 值。

以上是MySQL 中的預設 JOIN 類型是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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