📌  相关文章
📜  门| Sudo GATE 2020 Mock III(2019 年 1 月 24 日)|第 61 题

📅  最后修改于: 2021-09-26 04:00:03             🧑  作者: Mango

考虑以下模式:

Person(SSN, name, address)
Car(license, year, model)
Accident(license, accident_date, driver, damage_amount)
Owns(SSN, license) 

主键带有下划线。请注意,参与车祸的司机可能并不总是汽车的所有者。假设accident_date 是整数类型,表示年份(例如1980)。年份也是整数类型。此外,假设一辆汽车在某个日期不会卷入不止一次事故。

以下哪个查询是正确的,可以找到拥有一辆或多辆汽车的每个人的 SSN,这些人都没有发生过车祸。
(一种)

SELECT O.SSN
FROM Owns O
WHERE O.license NOT IN (SELECT A.license
                        FROM Accident A) 

(乙)

πSSN(Owns) - πSSN(Owns ⨝ Accident) 

(C)

{ O | ∃O1 ∈ Owns( O.SSN = O1.SSN ∧ ¬∃A∈ Accident( O1.license = A.license )) } 

(D)以上所有。答案:(乙)
说明:只有选项(B)是正确的。

选项 (A) 和选项 (C) 返回至少拥有一辆未发生事故的汽车的每个人的 SSN,而问题则询问他们的所有汽车从未发生过事故的人。
这个问题的测验