【发布时间】:2017-03-07 20:12:50
【问题描述】:
我正在编写一个 MySQL 查询,但我有一个疑问:以下哪些代码更快?我认为如果我在“左连接”(第二个代码)中更具体,它应该会更快。这种方法正确吗?
SELECT m.*, p.nome AS nomeprocedimento
FROM medicos AS m
LEFT JOIN medicoprocedimento AS mp ON m.id = mp.medicoid
LEFT JOIN procedimentos AS p ON mp.procedimentoid = p.id
WHERE m.id = 123
或
SELECT m.*, p.nome AS nomeprocedimento
FROM medicos AS m
LEFT JOIN medicoprocedimento AS mp ON m.id = mp.medicoid AND mp.medicoid = 123
LEFT JOIN procedimentos AS p ON mp.procedimentoid = p.id
WHERE m.id = 123
【问题讨论】:
-
请提供
SHOW CREATE TABLE。 -
你真的需要
LEFT吗?您是否希望p.nome在某些情况下为 NULL? -
这些返回 2 个不同的输入函数,除非某些约束成立,所以争论哪个更快是没有实际意义的。 minimal reproducible example 加上这表明没有研究。 How to Ask help center 同样“更快”取决于你不给的情况。
标签: mysql performance join