MYSQL从不同的表中添加行和计数
我有两个表的mysql数据库 第一(资料) 第二(用户) 我想为表“users”上的每个用户行计算并显示表“information”中的值 像这样MYSQL从不同的表中添加行和计数,mysql,database,Mysql,Database,我有两个表的mysql数据库 第一(资料) 第二(用户) 我想为表“users”上的每个用户行计算并显示表“information”中的值 像这样 +---------+------+----------+ | user | id | count | +---------+------+----------+ | amy | 1 | 6 | | dav | 2 | 2 | | mot | 3 | 0
+---------+------+----------+
| user | id | count |
+---------+------+----------+
| amy | 1 | 6 |
| dav | 2 | 2 |
| mot | 3 | 0 |
| mmm | 4 | 0 |
| aaw | 5 | 0 |
| dsa | 6 | 0 |
+---------+------+----------+
我如何进行此查询?这不是类似于:
select users.user, users.id, count (species.name)
from users left join species
on users.id = species.user
group by users.user, users.id
order by count (species.name) desc
select u.user, u.id, count(i.user)
from user u
inner join information i on i.user = u.id
group by u.user, u.id
是不是有点像:
select u.user, u.id, count(i.user)
from user u
inner join information i on i.user = u.id
group by u.user, u.id
我的解决方案和KAJ的解决方案的区别在于,我使用“左连接”,而他使用“内部连接”。我的查询将显示没有连接宠物的人(如示例所示),而他的查询将仅显示有连接宠物的人。您知道如何通过逗号仅计算行中的每个值吗?对于exmp:我有一个值为“1,2,5,7”的nammed物种行,我想计算并显示为一个值为4的新行。首先,这应该是一个单独的问题。其次,维护逗号分隔的值是不允许的!使用不同的表,为每个值指定单独的行。试着找一本比尔·卡温写的名为《SQL反模式》的书——有一章是关于这个问题的。我的解决方案和KAJ的解决方案的区别在于,我使用“左连接”,而他使用“内部连接”。我的查询将显示没有连接宠物的人(如示例所示),而他的查询将仅显示有连接宠物的人。您知道如何通过逗号仅计算行中的每个值吗?对于exmp:我有一个值为“1,2,5,7”的nammed物种行,我想计算并显示为一个值为4的新行。首先,这应该是一个单独的问题。其次,维护逗号分隔的值是不允许的!使用不同的表,为每个值指定单独的行。试着找一本比尔·卡温写的名为《SQL反模式》的书——有一章是关于这个问题的。
select u.user, u.id, count(i.user)
from user u
inner join information i on i.user = u.id
group by u.user, u.id