Web*_*net 65 mysql inner-join query-optimization 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
Run Code Online (Sandbox Code Playgroud)
它运行良好,直到我做它们LEFT JOIN.我认为通过不指定一种类型的连接,它被认为是一种LEFT JOIN.这不是这种情况吗?
Mar*_*ers 171
我认为通过不指定连接类型,它被假定为LEFT JOIN.这不是这种情况吗?
不,默认联接是INNER JOIN.
这是SQL连接的可视化解释.
内部联接

左连接

如果你刚才在查询中提到了JOIN,它将被视为INNER JOIN.
左连接:左连接将从左表中获取所有元素,并仅匹配右表中的跟随记录.例:
SELECT column_name(s)
FROM table_name1 #(Left table)
LEFT JOIN table_name2 #(Right table)
ON table_name1.column_name=table_name2.column_name
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.