GBase8s数据库select子句4

本文介绍了SQL中的IN和NOT IN子查询,用于筛选满足特定条件的多行数据。示例展示了如何在SELECT语句中使用NOT IN子查询排除特定订单。同时,解释了EXISTS子查询,它返回满足或不满足指定条件的行。通过一个SELECT语句实例,解释了如何使用NOT EXISTS子查询找到从未被订购的商品。这些子查询在数据过滤和关联查询中非常实用。
摘要由CSDN通过智能技术生成

IN 子查询

随同 IN 子查询,可返回多个满足 IN 或 NOT IN 条件的行,但仅可返回一列。

此示例展示在 SELECT 语句中 NOT IN 子查询的使用:

SELECT DISTINCT customer_num FROM orders

WHERE order_num NOT IN

(SELECT order_num FROM items

WHERE stock_num = 1);

要获取附加的信息,请参阅 IN 条件。

EXISTS 子查询

从 EXISTS 子查询,可返回那些在一个或多个列中的满足 EXISTS 条件的行。(类似地,NOT

EXISTS 子查询可返回在一列或多列中满足 NOT EXISTS 条件的那些行。)

下列带有 NOT EXISTS 子查询的 SELECT 语句返回那些从未被订购的每项的库存编号和生产商

代码(因而未罗列在 items 表中)。

在此 SELECT 语句中使用 NOT EXISTS 子查询是恰当的,因为您需要相关联的子查询来同时测试

items 表中的 stock_num 和 manu_code。

SELECT stock_num, manu_code FROM stock

WHERE NOT EXISTS

(SELECT stock_num, manu_code FROM items

WHERE stock.stock_num = items.stock_num AND

stock.manu_code = items.manu_code);

如果您在列名称的位置在子查询中使用 SELECT *,则前一示例同样奏效,因为您正在测试一行或

多行是否存在。

要获取附加的信息,请参阅 EXISTS 子查询条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值