我有桌子:
Array<Vector2> poly
问题是:
查找涉及多个事故的所有车辆的许可证号码(请勿返回重复)。
其中一个答案是:
Person(SSN, name, address)
Car(license, year, model)
Accident(license, accident-date, driver, damage-amount)
Owns(SSN, license)
它从不检查相关子查询中的A1.license = A2.license。所以据我所知,子查询检查A1中的元组是否具有与A2中的元组不同的事故日期,即使这两个元组具有不同的许可证。所以这不应该是错的吗?
编辑:假设汽车一天内不会发生多次事故。
答案 0 :(得分:1)
实际上IN
运营商正在检查许可证是否相等。让我们做一个测试。说Accidents
表包含行:
License AccidentDate
L1 20151001
L1 20151020
L2 20151025
针对外部查询的每一行评估相关子查询。想象一下在行上循环的游标。
row1
A.Licence
为L1
。内部子查询只检查与20151001
不同的日期,它会找到row2
和row3(L1, L3)
。所以A.Licence
,即L1
位于内部子查询的结果集中,它将在最终结果中返回。第二排也是如此。但是row3
不会被包含在内,因为L2
之外的日期中没有20151025
。所以查询是正确的。