SQL 子查询的深入解析与应用
1. 子查询基础
在关系型数据库中,连接(joins)操作能让我们从两个或更多表中获取信息。例如,下面的查询通过连接 CUSTOMER 和 INVOICE 表,获取客户数据及其对应的发票信息:
SELECT
INV_NUMBER, INVOICE.CUS_CODE, CUS_LNAME, CUS_FNAME
FROM
CUSTOMER C JOIN INVOICE I ON C.CUS_CODE = I.CUS_CODE;
不过,很多时候我们需要基于已处理的数据来处理新的数据。比如,要生成一份未提供产品的供应商列表。之前我们学过可以用如下查询实现:
SELECT
V_CODE, V_NAME
FROM
PRODUCT RIGHT JOIN VENDOR
ON PRODUCT.V_CODE = VENDOR.V_CODE
WHERE
P_CODE IS NULL;
但这个结果也可以通过子查询得到:
SELECT
V_CODE, V_NAME
FROM
VENDOR
WHERE
V_CODE NOT IN (SELECT V_CODE FROM PRODUCT WHERE
V_CODE IS NOT NULL);
超级会员免费看
订阅专栏 解锁全文
3130

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



