51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2437|回复: 1
打印 上一主题 下一主题

SQL数据库,在进行关联子查询时,使用别名与不使用别名的查询结果不同。

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:07
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2020-9-9 13:11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    整张表数据:
    +------------+--------------+--------------+------------+
    | product_id | product_name | product_type | sale_price |
    +------------+--------------+--------------+------------+
    | 0001       | T恤衫        | 衣服         |       1000 |
    | 0002       | 打孔器       | 办公用品     |        500 |
    | 0003       | 运动T恤      | 衣服         |       4000 |  
    | 0004       | 菜刀         | 厨房用具     |       3000 |
    | 0005       | 高压锅       | 厨房用具     |       6800 |
    | 0006       | 叉子         | 厨房用具     |        500 |
    | 0007       | 擦菜板       | 厨房用具     |        880 |
    | 0008       | 圆珠笔       | 办公用品     |        100 | |
    +------------+--------------+--------------+------------+
    不使用别名进行查询时:
    select product_type, product_name, sale_price
    from product
    where sale_price > (select avg(sale_price)
    from product
    where product_type = product_type);
    查询结果:
    +--------------+--------------+------------+
    | product_type | product_name | sale_price |
    +--------------+--------------+------------+
    | 衣服         | 运动T恤      |       4000 |
    | 厨房用具     | 菜刀         |       3000 |
    | 厨房用具     | 高压锅       |       6800 |
    +--------------+--------------+------------+
    使用别名进行查询:
    SELECT product_type, product_name, sale_price
    FROM Product AS P1
    WHERE sale_price > (SELECT AVG(sale_price)
    FROM Product AS P2
    WHERE P1.product_type = P2.product_type);
    查询结果:
    +--------------+--------------+------------+
    | product_type | product_name | sale_price |
    +--------------+--------------+------------+
    | 办公用品     | 打孔器       |        500 |
    | 衣服         | 运动T恤      |       4000 |
    | 厨房用具     | 菜刀         |       3000 |
    | 厨房用具     | 高压锅       |       6800 |
    +--------------+--------------+------------+
    就很懵,因为是初学,所以不明白是什么原因,还是希望有人帮忙指点一下

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2020-9-15 10:13:34 | 只看该作者
    第一个是一个表查询,所以查询出来的是在一个表内满足条件的数据,第二个是两个表进行比较,查询出来的是两个表比较后满足条件的数据。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-16 23:52 , Processed in 0.063853 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表