Разница в MySQL присоединиться против левое соединение
у меня есть этот запрос между базами данных...
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
. Разве это не так?
4 ответа:
Я думал, что, не указывая тип соединения, предполагается, что это левое соединение. Разве это не так?
нет, соединение по умолчанию является внутренним соединением.
здесь визуальное объяснение SQL присоединяется.
внутреннее соединение
левое соединение
нет. Если тип не указан, то Это. Почитать о различиях;Википедия
Если вы только что упомянули JOIN in query по умолчанию это будет считаться как внутреннее соединение.
левое соединение: левое соединение будет принимать все элементы из левой таблицы и только соответствующие записи из правой таблицы следующим образом. пример:
SELECT column_name(s) FROM table_name1 #(Left table) LEFT JOIN table_name2 #(Right table) ON table_name1.column_name=table_name2.column_name
надеюсь, что это помогает.