欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-16 16:03:37
...
有如下三张表(第一行为字段名)

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怎么写

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

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

相关标签: mysql php