子查询会查询多次吗? Select A From ATable Where ABID IN ( Select BID From BTable Where BCID IN ( Select CID From CTable Where C Like '%%' ) )
这个语句中的"ABID IN ( Select BID From BTable Where BCID IN ( Select CID From CTable Where C Like '%%' ) )"会执行一次还是会根据A中的数量执行多次?
我现在有3个表是这样的。
查询A表数据,
其中一个条件是C表的
A表和B表有关联
B表和C表有关联
Select A From ATable Where ABID IN ( Select BID From BTable Where BCID IN ( Select CID From CTable Where C Like '%%' ) )
感觉这样效率有点低。
用表联合或者Exists会不会好些? ------解决方案-------------------- 应该是先执行结果集,再执行查询的
即是先Select CID From CTable Where C Like '%%'
再Select BID From BTable Where BCID IN (---)
最后Select A From ATable Where ABID IN (---) ------解决方案--------------------