我正在将弃用的SQL(* =)转换为Left Join。以下SQL语句是否等效?性能会提高吗?
OLD
SELECT n.name,
n.address,
e.email,
e.title,
m.car,
l.type
FROM name n,
employee e,
miscellaneous m,
lifestyle l
WHERE n.id = 3
AND n.id = e.id
AND n.id *= m.id
AND n.id *= l.id;
新
SELECT n.name,
n.address,
e.email,
e.title,
m.car,
l.type
FROM name n,
employee e,
miscellaneous m,
lifestyle l
Inner Join empId ON n.id = e.id
Left Join miscId ON n.id = m.id
Left Join lifeId ON n.id = l.id;
答案 0 :(得分:5)
您的新查询不正确。
转换后的版本将是:
SELECT n.NAME
, n.address
, e.email
, e.title
, m.car
, l.type
FROM NAME n
INNER JOIN employee e ON n.id = e.id
LEFT JOIN miscellaneous m ON n.id = m.id
LEFT JOIN lifestyle l ON n.id = l.id;
WHERE n.id = 3
两个查询都将执行相同的操作。第一个是旧式。
请"标记为答案"如果帖子已回答问题