【发布时间】:2009-05-14 21:17:57
【问题描述】:
由于大量信息被连接在一起,我的查询速度特别慢。但是,我需要以 id in 的形式添加 where 子句(从表中选择 id)。
我想知道以下是否有任何收获,更紧迫的是,它是否会给出预期的结果。
select a.* from a where a.id in (select id from b where b.id = a.id)
作为替代:
select a.* from a where a.id in (select id from b)
更新: MySQL 不能更具体抱歉 表 a 实际上是 7 个不同表之间的连接。 * 用于举例
编辑,b 没有被选中
【问题讨论】:
-
注意:它们是简化的,a 实际上是 7 个不同的订单/客户/付款相关表之间的连接
-
是的,我想知道为什么 7 个不同表之间的连接可能会很慢 :-)
-
为什么会因为7个表而变慢?那没什么;)
-
打哈欠谁会记下来?为什么?
标签: sql optimization query-optimization sql-optimization