SQL 子查询:访问与修改数据全解析
1. 相关子查询
1.1 相关子查询的定义与示例
相关子查询是一种在某种程度上依赖于外部语句的子查询。例如下面的 SQL 语句:
SELECT * FROM CDStock s
WHERE EXISTS
( SELECT Title FROM CDArtists a
WHERE a.ArtistName = 'Joni Mitchell' AND s.CDTitle = a.Title ) ;
在这个例子中,外部语句是主 SELECT 语句,包含 SELECT 子句、 FROM 子句和 WHERE 子句,而子查询引用了外部语句中的 CDStock 表,因此子查询依赖于外部语句来返回数据。
1.2 与独立子查询的对比
大多数子查询是独立于外部语句的,例如:
SELECT * FROM CDStock
WHERE CDTitle IN
( SELECT Title FROM CDArtists WHERE ArtistName = 'Joni Mitchell' ) ;
在这个例子中,子查询仅返回结果,然后在外部语句中使用。子查询只需要评估一次,结果会根据需要被主语句使用。然而,对于相关子查询,子查询通常必须为外部语句返回的每一行重新评估,因为至少
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



