MySQL JOIN 与 LEFT JOIN 的区别

我有这个跨数据库查询...

I have this cross-database query...

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 s.我认为通过不指定连接类型,它被假定为 LEFT JOIN.不是这样吗?

it runs fine until I make them LEFT JOINs. I thought that by not specifying a type of join it was assumed to be a LEFT JOIN. Is this not the case?

推荐答案

我认为通过不指定连接类型,它被假定为左连接.不是这样吗?

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

不,默认联接是内部联接.

No, the default join is an INNER JOIN.

这是对SQL 连接.

内连接

左连接

相关文章