mysql子查询(嵌套子查询和相关子查询的区别) | 您所在的位置:网站首页 › 持仓查询和申请查询一样吗知乎 › mysql子查询(嵌套子查询和相关子查询的区别) |
1 子查询分类
子查询可以分为 嵌套子查询 和 相关子查询 两类 1.1 嵌套子查询 1.1.1 执行顺序(由内至外)(1)执行子查询道,其结果不被显示,而是传递给外部查询,作为外部查询的条件使用。 (2)执行外部查询,并显示整个结果。 1.1.2 实例说明查询商品id为TNT2的订单号。 SELECT order_num FROM orders WHERE order_num IN ( SELECT order_num FROM orderitems WHERE prod_id = 'TNT2' ) 上面的查询分为两步:(1)子查询 SELECT order_num FROM orderitems WHERE prod_id = 'TNT2'(2)外部查询 SELECT order_num FROM orders WHERE order_num IN (20005, 20007) 1.2 相关子查询 1.2.1 执行顺序(由外至内)(1)从外层查询中取出一个元组,将元组相关列的值传给内层查询。 (2)执行内层查询,得到子查询操作的值。 (3)外查询根据子查询返回的结果或结果集得到满足条件的行。 (4)然后外层查询取出下一个元组重答复做步骤1-3,直到外层的元组全部处理完毕。 1.1.2 实例说明查询客户的订单总数 SELECT cust_name, cust_state, ( SELECT COUNT(*) FROM orders o WHERE o.cust_id = c.cust_id ) AS orders FROM customers c GROUP BY cust_name; 上面的查询分为两步:(1)外部查询 SELECT cust_name, cust_state, cust_id FROM customers GROUP BY cust_name;(2)子查询 SELECT COUNT(*) FROM orders o WHERE o.cust_id = c.cust_id |
CopyRight 2018-2019 实验室设备网 版权所有 |