Mysql 一对多关系中有多少行?
我在MySQL上有两个表,其结构如下: 用户: id |名称 账户: id |用户id |金额 我需要一个查询,以获得每个用户的总帐户,以及结果中的用户名。有没有办法做到这一点?我在from子句中尝试过子查询,我不知道如何使用联接来实现这一点,但我怀疑这是否是解决方案。。。有什么想法吗 下面是我假装得到的示例数据和示例输出:Mysql 一对多关系中有多少行?,mysql,sql,one-to-many,Mysql,Sql,One To Many,我在MySQL上有两个表,其结构如下: 用户: id |名称 账户: id |用户id |金额 我需要一个查询,以获得每个用户的总帐户,以及结果中的用户名。有没有办法做到这一点?我在from子句中尝试过子查询,我不知道如何使用联接来实现这一点,但我怀疑这是否是解决方案。。。有什么想法吗 下面是我假装得到的示例数据和示例输出: Users 1 | 'John' 2 | 'Peter' Accounts 1 | 1 | 1000 2 | 1 | 2000 3 | 2 | 1500 query:
Users
1 | 'John'
2 | 'Peter'
Accounts
1 | 1 | 1000
2 | 1 | 2000
3 | 2 | 1500
query:
'John' | 2 <- there are 2 accounts for user 'John'
'Peter' | 1 <- there is only 1 account for user 'Peter'
用户
1 |“约翰”
2 |“彼得”
账户
1 | 1 | 1000
2 | 1 | 2000
3 | 2 | 1500
查询:
“约翰”2
编辑:请注意,如果用户没有帐户,他们将不会出现在这里,您将需要像Jonah的查询一样的左连接
编辑:请注意,如果用户没有帐户,他们将不会出现在此处,您将需要像Jonah的查询一样的左连接。这里有一个查询,以获取用户的姓名和帐户计数:
SELECT u.name, COUNT(a.id) AS numAccounts
FROM Users u
LEFT JOIN Accounts a ON u.id=a.userid
GROUP BY u.id;
要获取“金额”列的总和,可以执行以下操作:
SELECT u.name, COUNT(a.id) AS numAccounts, SUM(u.amount) AS totalAmount
FROM Users u
LEFT JOIN Accounts a ON u.id=a.userid
GROUP BY u.id;
下面是一个查询,用于获取用户名及其帐户数:
SELECT u.name, COUNT(a.id) AS numAccounts
FROM Users u
LEFT JOIN Accounts a ON u.id=a.userid
GROUP BY u.id;
要获取“金额”列的总和,可以执行以下操作:
SELECT u.name, COUNT(a.id) AS numAccounts, SUM(u.amount) AS totalAmount
FROM Users u
LEFT JOIN Accounts a ON u.id=a.userid
GROUP BY u.id;
看一看内部连接、分组依据和总和()看一看内部连接、分组依据和总和()谢谢!似乎左联的解决方案就是那个;)谢谢似乎左联的解决方案就是那个;)