300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MYSQL:利用子查询进行过滤

MYSQL:利用子查询进行过滤

时间:2019-04-17 05:49:01

相关推荐

MYSQL:利用子查询进行过滤

订单存储在两个表中。每个订单包含订单编号、客户ID、订单日期,在Orders表中存储为一行。各订单的物品存储在相关的OrdersItems表中。Orders表不存储顾客信息,只存储顾客ID。顾客的实际信息存储在Customers表中。

现在,假如需要列出订购物品RGAN01的所有顾客,步骤如下:

1、检索包含物品RGAN01的所有订单的编号。

SELECT order_numFROM orderitemsWHERE prod_id = 'RGAN01';

2、检索具有第一步列出的订单编号的所有顾客的ID。

SELECT cust_idFROM ordersWHERE order_num IN (20007, 20008);

现在,结合这两个查询,把第一个查询(返回订单号的第一个)作为子查询。

SELECT cust_idFROM ordersWHERE order_num IN (SELECT order_numFROM orderitemsWHERE prod_id = 'RGAN01');

可以看出结果是一样的。

在SELECT语句中,子查询总是由内向外执行的。

3、检索上一步返回的所有顾客ID的顾客信息。

SELECT cust_name,cust_contactFROM customersWHERE cust_id IN ('1000000004','1000000005');

子查询:

SELECT cust_name,cust_contactFROM customersWHERE cust_id IN (SELECT cust_idFROM ordersWHERE order_num IN (SELECT order_numFROM orderitemsWHERE prod_id = 'RGAN01'));

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。