我想知道是否有人可以向我解釋何時使用子查詢以及何時使用連接。例如子查詢或加入?
。
我有這個疑問:
SELECT * from contacts where id in (select contactId from contactgrouplink where groupId = 1);
將受益是一個參加過這個子查詢什麼?
我想知道是否有人可以向我解釋何時使用子查詢以及何時使用連接。例如子查詢或加入?
。
我有這個疑問:
SELECT * from contacts where id in (select contactId from contactgrouplink where groupId = 1);
將受益是一個參加過這個子查詢什麼?
select * from contacts x, contactgrouplink y where x.id=y.contactId and y.groupId=1
使用EXPLAIN 每個這些查詢的前只是......看看做什麼的查詢!
看這裏還有討論
做一個講解,我的經驗法則是嘗試,因爲這意味着在外部SQL語句中的每一行,以擺脫依賴的子查詢,查詢是執行。此外,您可以嘗試將其作爲連接來實現,並查看每個版本將檢查多少行並從那裏進行調用。
據我所知,子查詢是連擊而不是連接。 我也使用子查詢Becoz「加入」是影響性能。 (根據我的Sql首選項)
[Subqueries vs joins](http://stackoverflow.com/questions/141278/subqueries-vs-joins)可能的副本 – 2011-01-31 10:00:48