簡體   English   中英

MySQL嵌入式SELECT與JOIN相比

[英]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

你也可以在SO上看到關於這個主題的許多討論

這兩個查詢不是同義詞。

如果用LEFT JOIN替換INNER JOIN ,它們將是同義詞,但如果deptid不唯一則子查詢會失敗,而LEFT JOIN將始終成功。

如果depts.deptid上有一個UNIQUE索引(最可能的是,因為這個字段很可能是一個PRIMARY KEY ),那么性能差異可以忽略不計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM