【发布时间】:2013-09-18 22:47:29
【问题描述】:
这个嵌套的子查询会被执行多少次?
SELECT CID, CNAME
FROM CUSTOMER
WHERE EXISTS ( SELECT CID
FROM RENTALS
WHERE CUSTOMER.CID = RENTALS.CID
AND PICKUP = 'CARY' )
这是一个理论问题,即在我的书中找到。提供的答案是 6,但我不明白为什么会这样。
好的,我认为这本书本身存在一些问题。我会通读这本书,也许稍后再问这个问题。
【问题讨论】:
-
SQL 只是 结构化查询语言 - 许多数据库系统使用的语言,但不是数据库产品...很多事情都是特定于供应商的 - 所以我们真的需要知道您正在使用什么数据库系统(以及哪个版本)(请相应地更新标签)......
-
@marc_s 你好,马克,这是一个理论问题,即在我的书中找到。他们给出的答案是 6。请解释一下。
-
我试图说明:这很可能取决于哪个实际数据库正在执行此代码,并且它绝对取决于表中存在什么 data涉及。仅仅从这段代码sn-p,这个问题是无法回答的。
-
即使我们假设最简单的实现,我们也需要知道 CUSTOMER 表中有多少行才能得出一个特定的数字,例如
6。 -
对于
CUSTOMER中的每一行,subqery 都可以工作。
标签: sql database-agnostic