Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 一对多关系中有多少行?_Mysql_Sql_One To Many - Fatal编程技术网

Mysql 一对多关系中有多少行?

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:

我在MySQL上有两个表,其结构如下:

用户: id |名称

账户: id |用户id |金额

我需要一个查询,以获得每个用户的总帐户,以及结果中的用户名。有没有办法做到这一点?我在from子句中尝试过子查询,我不知道如何使用联接来实现这一点,但我怀疑这是否是解决方案。。。有什么想法吗

下面是我假装得到的示例数据和示例输出:

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;

看一看内部连接、分组依据和总和()看一看内部连接、分组依据和总和()谢谢!似乎左联的解决方案就是那个;)谢谢似乎左联的解决方案就是那个;)