mysql - MySQL JOIN 与 LEFT JOIN 的区别

标签 mysql query-optimization left-join inner-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 JOINs。我认为通过不指定连接类型,它被假定为 LEFT JOIN。不是这样吗?

最佳答案

I thought that by not specifying a type of join it was assumed to be a LEFT JOIN. Is this not the case?

不,默认联接是 INNER JOIN。

这里是 a visual explanation of SQL joins .

内连接

enter image description here

左加入

enter image description here

关于mysql - MySQL JOIN 与 LEFT JOIN 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770366/

相关文章:

mysql - 左连接给出更多结果

php - Ajax 和 php 响应不起作用

mysql_query 返回 0 元素

php - SQL查询中的cakephp虚拟字段

php - 通过添加值进行分组

mysql - 获取数组中表中最近30天当天的记录总数

mysql - 为什么这个 MySQL 查询在条件组合时慢,但在条件分离时快?

oracle - 在Oracle中使用ANSI数据类型是否有性能损失?

PHP MySQL 表连接 - 仅回显标识符一次,然后是所有匹配的项目

c# - LINQ 中多个左连接的正确语法?