[英]MySQL Embedded SELECTs vs. JOINs
以下两者之间是否存在明显差异:
SELECT userid, username, userdept,
(SELECT deptname FROM depts WHERE deptid=userdept) AS deptname
FROM users
和
SELECT userid, username FROM users
INNER JOIN depts ON depts.deptid=users.userdept
哪一个更好?
您的第二个查询具有更好的性能
你可以看到这个例子: http : //www.codersrevolution.com/index.cfm/2008/7/31/MySQL-performance-INNER-JOIN-vs-subselect
这两个查询不是同义词。
如果用LEFT JOIN
替换INNER JOIN
,它们将是同义词,但如果deptid
不唯一则子查询会失败,而LEFT JOIN
将始终成功。
如果depts.deptid
上有一个UNIQUE
索引(最可能的是,因为这个字段很可能是一个PRIMARY KEY
),那么性能差异可以忽略不计。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.