我写了一个查询,我想知道在查询中使用 IN 子句的效果。
查询一 从khata payment_track中选择* 其中 Property_ID IN(从 khata_header 中选择 Property_id,其中 DIV_ID=2)
查询二 从khata payment_track KPT、khata_header KH中选择* 其中 kh.Property_id=KPT.Property_id 和 KH.DIV_Id=2
我想知道 1)哪一个更快 2) 使用 IN 子句的任何影响,如果查询有 3 个 IN 子句,是否建议使用。
你能帮我举例吗
最佳答案
您的第二个查询速度更快,但最好使用联接(它看起来更好并且具有相同的执行计划):
select
*
from
khatapayment_track t
inner join khata_header h on (h.property_id = t.property_id)
where
h.div_id = 2
您也可以使用mysql profiler比较您的查询。
关于database - IN 子句在数据库查询中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139687/