首页 > 数据库 > mysql教程 > 为什么我的 MySQL 查询返回的结果比预期少?

为什么我的 MySQL 查询返回的结果比预期少?

Linda Hamilton
发布: 2024-11-26 02:46:10
原创
201 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板