首頁 >資料庫 >mysql教程 >MySQL 中的 JOIN 和 LEFT JOIN 有什麼不同?

MySQL 中的 JOIN 和 LEFT JOIN 有什麼不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 16:13:11721瀏覽

What is the difference between JOIN and LEFT JOIN in MySQL?

理解MySQL 中JOIN 和LEFT JOIN 的區別

在SQL 中,連接表允許我們根據特定的條件組合多個表中的數據標準。兩種常見的聯結類型是 JOIN 和 LEFT JOIN。

JOIN 與 LEFT JOIN

JOIN 僅返回與聯結條件匹配的行,實質上創建記錄的子集符合指定標準的。另一方面,LEFT JOIN 會擷取左表中的所有行,並且僅檢索右表中符合的行。右表中沒有匹配的行將傳回 NULL 值。

MySQL 中的預設聯接類型

與使用者的假設相反,MySQL 中的預設聯接類型是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

預設情況下,此查詢使用INNER JOIN,它只傳回所有四個連接表中都有對應條目的作業。要將其轉換為 LEFT JOIN,您可以將 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`
        LEFT JOIN `DM_Server`.servers ON servers.ServerID = Jobs.Jobs_ServerID
        LEFT JOIN `cpod_live`.`digital_inventory` ON digital_inventory.jobname = Jobs.Jobs_Name
        LEFT JOIN `cpod_live`.`products` ON products.products_pdfupload = CONCAT(digital_inventory.jobname, ".pdf")
        LIMIT 50

以上是MySQL 中的 JOIN 和 LEFT JOIN 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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