【发布时间】:2014-10-23 03:52:00
【问题描述】:
Oracle SQL 的初学者,我对EXISTS 有一些困惑。这是一个例子:
SELECT PORT_ID
FROM PORTS P1
WHERE EXISTS
(SELECT * FROM SHIPS S1
WHERE P1.PORT_ID = S1.HOME_PORT_ID);
假设PORT_ID 和HOME_PORT_ID 列中有一些行共享相同的值,这意味着WHERE 子句中的子查询返回TRUE。
我想知道将选择哪些行。是选择表中的所有PORT_ID PORTS 还是只选择等于HOME_PORT_ID 的PORT_ID?
【问题讨论】: