為什麼我的 MySQL 查詢回傳的結果比預期少?

Linda Hamilton
發布: 2024-11-26 02:46:10
原創
157 人瀏覽過

Why is My MySQL Query Returning Fewer Results Than Expected?

區分 MySQL JOIN 和 LEFT JOIN

在資料庫查詢的上下文中,了解不同連結類型之間的細微差別至關重要。當遇到上述錯誤時,深入研究常規 JOIN 和 LEFT JOIN 之間的差異非常重要。

預設聯接類型

與您的假設相反, MySQL 中預設的連接類型是 INNER JOIN,而不是 LEFT JOIN。這意味著,如果您省略指定連接類型,則預設為 INNER JOIN。

了解差異

INNER JOIN,如可視化插圖所示,匹配具有來自參與表的共同值的行。相反,LEFT JOIN 包含左表(在您的範例中為 DM_Server.Jobs)中的所有行,並且僅包含右表中的符合行。如果沒有匹配項,結果將包含缺失資料的空值。

解決方案

要獲得從左表返回所有行的所需行為,您可以明確使用 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")
        LEFT JOIN `cpod_live`.`customers` ON customers.customers_id = products.cID
        ORDER BY `DM_Server`.`Jobs`.Jobs_StartTime DESC LIMIT 50
登入後複製

以上是為什麼我的 MySQL 查詢回傳的結果比預期少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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