添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

正常情况下可以在 select 内嵌套子查询作为结果集的字段,示例如下:

select id,name,(SELECT COUNT(id) FROM records WHERE user_id = users.id
) AS box_count FROM users 
where user_id = 9527;

但如果需要子查询的多个字段返回,此时放在 select 是不行的:

SELECT SUM(money) as total_money, SUM(profit) as total_profit FROM records WHERE user_id = 9527;

当然可以将其拆分成两个(多个)子查询,但那样感觉会降低查询效率。

百度找到了一个解决方法,就是使用 join 替换子查询,将两个结果集放一起。

union 是不行的,union 是将相同字段的结果集放在一起,会增加记录数。

最终的实现:

select id,name,res.total_money,res.total_profit FROM users
JOIN (
SELECT SUM(money) as total_money, SUM(profit) as total_profit FROM records
) AS res ON res.user_id = users.id
where user_id = 9527;

打赏: 微信收款二维码 微信 , 支付宝收款二维码 支付宝

标签: none

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。

  • gitlab merge request 取消 [默认删除分支] 选项
  • iis 10 下网站访问下载 apk 地址报错:404.3 – Not Found 如果是脚本文件,请添加模块映射;如果应下载文件,请添加 MIME 映射
  • Gravatar 头像申请之 WordPress 账号注册不通过,邮件地址不允许使用
  • Typecho 的 DPlayer 插件在 VOID 主题下的兼容性测试 - 薛之谦 - 《演员》mv
  • 微信小程序的坑 (二)只能触发一次的一次性订阅消息
  • Linux 基本命令不能用的解决方法
  • git push 时报 “The project you were looking for could not be found.”
  • 体验 typecho 新主题 VOID(附:php 7.3.5 安装)
  • MySQL 日期时间存储类型 datetime、timestamp 以及 int 的联系和区别
  • 周杰伦封神的十大神级金曲
  • 笔记本“生死”两小时
  • Mybatis 用 if 条件判断 `test="num != null and num != '' "` 当 num 为 0 时判断为 fasle
  • Springboot 项目使用 undertow 替换 tomcat
  • SpringBoot 调用 RedisTemplate 存储列表 redisTemplate.opsForList().rightPushAll(K var1, V... var2) 报错:xxxUser cannot be cast to java.lang.String
  • MacBookPro 2018 苹果笔记本电脑出现电池没有在充电警告
  • SpringBoot 使用 MongoDB 初体验
  • tk-mybatis 搭配分页插件 pagehelper 使用遇到的问题
  • 苏州相城周末看房两日游
  • Mybatis 报错 invalid comparison: java.util.Date and java.lang.String
  • Springboot 识别上传的日期报错:Invalid JSON input: Cannot deserialize value of type `java.util.Date`
  • 服务器
  • C 语言
  • PHP
  • codeigniter
  • yii2
  • laravel
  • ThinkPHP
  • Web
  • Java
  • python
  • SQL
  • 网络安全
  • 常见问题
  • 成长的烦恼
  • 解忧杂货铺
  • 水星记
  • 文章 RSS
  • 评论 RSS
  •