SQL 把查询结果当作"表"来使用

本文介绍了如何在SQL中使用子查询来筛选特定条件的数据。通过示例展示了如何将子查询结果作为临时表来进一步查询,以及如何利用子查询获取购买数量超过指定阈值的用户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写数据库作业的时候遇到的问题,在查阅百度后自己简单整理了一下

sql中把一个查询结果当作另一个表来查询可以理解查询结果为一个临时表
使用select语句查询结果集即可。
参考代码:
--1:将结果作为一个临时表,可以使用链接或者直接查询
SELECT * FROM(
    SELECT SUM(NUM_QNTY4) AS sumNum, NUM_LINKID
    FROM RW_STORE_QUNTY
    GROUP BY NUM_LINKID 
) AS A
举例:查询订单表OrderInfo中购买数量超过30的用户编号

SELECT UserId FROM --订单表中购买数量超过30的用户编号UserId
(
    SELECT UserId
    FROM OrderInfo-- OrderInfo 订单表
    GROUP BY UserId HAVING SUM(Amount)>30
)AS T1 --查询结果作为临时表T1
 -------------------------------
--2:将上述查询结果作为子查询的方式 
SELECT * FROM 表名
WHERE 字段名1 IN 
(
   SELECT 字段名1 FROM(
       SELECT 字段名1 AS sumNum, NUM_LINKID
       FROM RW_STORE_QUNTY
       GROUP BY NUM_LINKID 
   )
)
--查询购买商品数量超过30的用户信息
--用户信息在UserInfo中,购买详情放在OrderInfo中,所以要将两个表关联起来
SELECT * FROM UserInfo--从UserInfo中根据ID提取用户的完整信息
WHERE UserId IN (
    SELECT UserId FROM --得到订单表中购买数量超过30的用户编号UserId
    (
        SELECT UserId
        FROM OrderInfo-- OrderInfo 订单表
        GROUP BY UserId HAVING SUM(Amount)>30
    )AS T1
)

参考:https://zhidao.baidu.com/question/68527378.html  不过我觉得部分有错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值