博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.使用子查询 ---SQL
阅读量:6602 次
发布时间:2019-06-24

本文共 833 字,大约阅读时间需要 2 分钟。

利用子查询进行过滤


 普通查询:

SELECT order_numFROM OrderItemsWHERE prod_id = 'RGAN01';
输出▼order_num-----------2000720008

现在,我们知道了哪个订单包含要检索的物品,下一步查询与订单20007和20008相关的顾客ID。

SELECT cust_idFROM OrdersWHERE order_num IN (20007,20008);
输出▼cust_id----------10000000041000000005

 

利用子查询:

SELECT cust_idFROM OrdersWHERE order_num IN ( SELECT order_numFROM OrderItemsWHERE prod_id = 'RGAN01' );
输出▼cust_id----------10000000041000000005

分析▼

在SELECT语句中,子查询总是从内向外处理。在处理上面的SELECT语句时,DBMS实际上执行了两个操作。
首先,它执行下面的查询:

SELECT order_num FROM orderitems WHERE prod_id='RGAN01'

此查询返回两个订单号:20007和20008。然后,这两个值以IN操作符要求的逗号分隔的格式传递给外部查询的WHERE子句。外部查询变成:

SELECT cust_id FROM orders WHERE order_num IN (20007,20008)

可以看到,输出是正确的,与前面硬编码WHERE子句所返回的值相同。

提示:格式化SQL
包含子查询的SELECT语句难以阅读和调试,它们在较为复杂时更是如此。如上所示,把子查询分解为多行并进行适当的缩进,能极大地简
化子查询的使用。

 

转载于:https://www.cnblogs.com/lbonet/p/7495096.html

你可能感兴趣的文章
字符串连接[不用库函数]
查看>>
ubuntu 下安装 matplotlib
查看>>
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字......
查看>>
050:navie时间和aware时间详解
查看>>
百度地图车辆运动轨迹
查看>>
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>
JSP页面重定向
查看>>
DroidCam 一片 红色 解决办法
查看>>
用 Hexo + Next + GitHubPages 搭建漂亮的免费博客
查看>>
Pandas:按条件进行行选择
查看>>
spring boot 自定义规则访问获取内部或者外部静态资源图片
查看>>
springmvc + mybatis + ehcache + redis架构
查看>>
sed指定行范围匹配(转贴!)
查看>>
C#语音朗读文本 — TTS的实现
查看>>
Python正则表达式初识(十)附正则表达式总结
查看>>
APICLOUD 1.1.0 开发环境搭建
查看>>
《Cadence 16.6电路设计与仿真从入门到精通》——导读
查看>>
Confluence 6 如何让我的小组成员知道那些内容是重要的
查看>>
找到一个适合的分布式文件系统之各种分布式文件系统优缺点对比
查看>>
httpd基本配置
查看>>