码迷,mamicode.com
首页 > 数据库 > 详细

MySQL:子查询

时间:2019-10-30 11:49:59      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:bsp   www   语句   col   参考   tac   购物   信息   custom   

之前介绍的都是简单查询,MySQL还支持子查询,常见的子查询用法有在where子句IN操作符中使用和计算字段中使用,下面分别举例说明。

用到的表参考https://www.cnblogs.com/july23333/p/11763375.html

1、where子句中

例:列出订购物品TNT2的所有客户信息

客户表中存有客户信息,订单表中存有订单号和客户ID,购买物品存在订单商品表中。我们从内至外依此写出查询语句在嵌套进外一层。

购买TNT2的订单号:

SELECT order_num FROM orderitems WHERE prod_id=‘TNT2‘; 假定结果为20005和20007

查询订单号为20005和20007的客户ID:

SELECT cust_id FROM orders WHERE order_num IN (20005,20007);假定结果为10001和10004

查询客户id为10001和10004的客户信息

SELECT cust_id,cust_name,cust_contact FROM customers WHERE cust_id IN(10001,10004);

那么子查询的写法为:

SELECT cust_id,cust_name,cust_contact

FROM customers

WHERE cust_id IN(

        SELECT cust_id

        FROM orders

        WHERE order_num IN(

                  SELECT order_num 

                  FROM orderitems

                  WHERE prod_id=‘TNT2‘ 

                  )        

        )

2、计算字段中

例2:查询每个客户的订单总数

SELECT cust_id,cust_name,cust_contact,

    (SELECT COUNT(*)

    FROM orders

    WHERE orders.cust_id=customers.cust_id)

FROM customers ORDER BY cust_name

MySQL:子查询

标签:bsp   www   语句   col   参考   tac   购物   信息   custom   

原文地址:https://www.cnblogs.com/july23333/p/11763882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!