MySQL嵌套SELECT与JOIN的区别

4

这两者之间有明显的区别吗:

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

哪一个更好?
4个回答

2


1

1

这两个查询不是同义词。

如果您将INNER JOIN替换为LEFT JOIN,则它们将成为同义词,但是如果deptid不唯一,则子查询可能会失败,而LEFT JOIN将始终成功。

如果在depts.deptid上有一个UNIQUE索引(由于此字段很可能是PRIMARY KEY),则性能差异将可以忽略不计。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接