TableA,TableB,TableC是三个具有行数| A |,| B |的表和| C |分别。每个子查询运行的频率是多少?两个查询的结果是否相等?需要解释
a) SELECT * FROM TableA a
WHERE EXISTS (
SELECT * FROM TableB b -- Subquery 1
WHERE a.ID = b.ID AND EXISTS (
SELECT * FROM TableC c -- Subquery 2
WHERE b.ID = c.ID
)
)
b) SELECT * FROM TableA a
WHERE EXISTS (
SELECT * FROM TableB b -- Subquery 1
WHERE a.ID = b.ID AND EXISTS (
SELECT * FROM TableC c -- Subquery 2
WHERE a.ID = c.ID
)
)
答案 0 :(得分:0)
每个子查询必须多久运行一次?
您正在使用相关子查询,因此对于外部查询的每一行,内部查询都将被评估。
两个查询的结果是否等效?
在您的情况下是,在第一个查询中,您正在检查
对于TableA
,TableB
和TableB
匹配,TableC
在第二个查询中,您正在检查
对于TableA
,TableB
和TableC