热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

请教大家三表连接查询的sql怎么写

有如下三张表(第一行为字段名)user用户表:idname1aaa2bbb3cccchargeRecord充值记录表:iduserIdmoney1110212324426record通话记录表:idcallId(主叫)beCallId(被叫)time(时长)121...
有如下三张表(第一行为字段名)

user用户表:

id name
1 aaa
2 bbb
3 ccc

chargeRecord充值记录表:

id userId money
1 1 10
2 1 2
3 2 4
4 2 6

record通话记录表:

id callId(主叫) beCallId(被叫) time(时长)
1 2 1 23
2 3 1 2
3 2 3 16

如何利用user表里面的id 和充值记录表的userId 以及record表的callId/beCallId做连接
查询 用户名,充值总金额,和通话总时长(主叫时长)
新手谢过大家了!!

回复内容:

有如下三张表(第一行为字段名)

user用户表:

id name
1 aaa
2 bbb
3 ccc

chargeRecord充值记录表:

id userId money
1 1 10
2 1 2
3 2 4
4 2 6

record通话记录表:

id callId(主叫) beCallId(被叫) time(时长)
1 2 1 23
2 3 1 2
3 2 3 16

如何利用user表里面的id 和充值记录表的userId 以及record表的callId/beCallId做连接
查询 用户名,充值总金额,和通话总时长(主叫时长)
新手谢过大家了!!

SELECT user.id AS id, user.name AS name, charge.money AS money, record.time AS time
FROM user
LEFT JOIN (SELECT userId, SUM(money) AS money FROM chargerecord GROUP BY userId) AS charge ON user.id = charge.userId
LEFT JOIN (SELECT callId, SUM(time) AS time FROM record GROUP BY callId) AS record ON user.id = record.callId
ORDER BY user.id

怎么查 楼上已经给出了 我有一篇关于多表查询的文章 希望对楼主了解多表查询有帮助:SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

各位 如果不喜欢这个答案 给评论回复 我撤掉回复 求别踩

推荐阅读
  • 深入理解聚簇索引与非聚簇索引及其优化策略
    本文探讨了数据库性能优化中的关键因素——索引,特别是聚簇索引与非聚簇索引的区别及应用场景。通过实例分析,提供了如何有效利用这两种索引来提升数据库查询性能的方法。 ... [详细]
  • 日志记录对于软件开发至关重要,特别是在调试和维护阶段。通过日志,开发者能够追踪错误源头并了解系统的运行状态。本文将探讨如何在Django框架中有效配置和使用日志记录功能。 ... [详细]
  • 本文详细介绍了Oracle数据库中审计日志(audit trail)的配置方法及各参数选项的功能,包括如何启用系统范围的审计记录,以及如何将审计数据存储在不同的位置和格式。 ... [详细]
  • 本文探讨了SQL Server中以sp_开头的存储过程特性及其对数据库执行上下文的影响。通过分析执行规则和潜在问题,提供了解决方案,确保存储过程能够正确访问所需对象。 ... [详细]
  • API网关作为微服务架构中的关键组件,扮演着系统与外部世界交互的唯一接口角色。它不仅封装了系统的内部复杂性,还为不同客户端提供了个性化的API接口。本文将探讨API网关的重要性及其核心功能。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 本文介绍了在T-SQL中如何有效地进行字符串分割以及如何将多行字符串合并为单行的方法,提供了具体的函数实现和示例。 ... [详细]
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • 探讨了汉字在计算机系统中的字符占用情况,以及在使用SQL Server 2000进行特定条件查询时遇到的问题,特别是针对姓氏为‘刘’的学生记录的查询。 ... [详细]
  • 本文深入探讨了在MySQL数据库中利用innobackupex工具进行备份,并结合binlog日志实现数据库的完整恢复过程。适合对数据库管理和维护有一定需求的技术人员阅读。 ... [详细]
  • Pikachu SQL注入实战解析
    作为一名网络安全新手,本文旨在记录个人在SQL注入方面的学习过程与心得,以备后续复习之用。通过逐步深入的学习,力求掌握每个知识点后再向下一个挑战迈进。 ... [详细]
  • Spring Boot + MyBatis Plus 实现SQL语句打印的两种方法
    本文详细介绍了如何在Spring Boot和MyBatis Plus环境中实现SQL语句打印的两种方法,包括配置文件设置和多数据源环境下的动态配置。适合开发者在日常开发和调试过程中参考。 ... [详细]
  • PHP中静态类与静态变量的应用差异探讨
    本文深入探讨了PHP编程语言中静态类与静态变量的具体应用及其差异性,旨在帮助开发者更好地理解和运用这些概念,以提升代码质量和效率。 ... [详细]
  • 如何解决PHP中时间获取不准确的问题
    本文探讨了在PHP开发过程中遇到的时间获取错误问题,并提供了详细的解决方案,包括通过修改配置文件和编程方法来调整时区设置。 ... [详细]
  • MySQL基础指南:从入门到实践
    本指南旨在为初学者提供MySQL数据库的基础知识,包括如何在Linux环境下启动、登录MySQL,以及如何查看数据库和表等基本操作。 ... [详细]
author-avatar
韩志勇1234
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有