子查询或加入?
问题描述:
我想知道是否有人可以向我解释何时使用子查询以及何时使用连接。例如子查询或加入?
。
我有这个疑问:
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