📜  门|门 IT 2006 |第 85 题

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

考虑如下所示的具有三个关系实例的数据库。 Drivers 和 Cars 关系的主键分别是 did 和 cid,并且记录按照表中给出的这些主键的升序存储。数据库中没有可用的索引。

2006_84_85

2006_84_85_2
2006_84_85_3
以下 SQL 查询的输出是什么?
2006_84_85_4
(A) Karthikeyan,鲍里斯
(B)萨钦、萨勒曼
(C) Karthikeyan、鲍里斯、萨钦
(D)舒马赫、塞纳答案:(一)
解释:

子查询总是在主查询执行之前执行。子查询首先完成。子查询的结果用作外部查询的输入。

从第一个内部查询:

选择 R.did from Cars C, Reserves R
其中 R.cid = C.cid 和 C.colour = ‘红色’。

C.color = “红色”,对应 C.cid={102,104}。

R.cid=C.cid 所以有五行提取到这个 where 条件。
R.did = {22, 22, 31,31, 64} 来自第二个内部查询:
选择 R.did from Cars C, Reserves R
其中 R.cid = C.cid 和 C.colour = ‘绿色’

C.color = “绿色”,对应的 C.cid={103}

R.cid=C.cid 所以有三行提取到这个 where 条件。
R.did = {22, 31, 74}

最后,外部查询选择其 did = {22,31} 的驱动程序名称
对应于 Karthikeyan 和 Boris。
所以正确选项是A。

该解决方案由Nitika Bansal 提供
这个问题的测验