简体   繁体   English

MYSQL从不同的表中添加行和计数

[英]MYSQL add row and count from diffrent table

I have mysql database with two tables. 我有两个表的mysql数据库。

First (information) 第一(信息)

+---------+------+----------+
| species | sex  | user     |
+---------+------+----------+
| bird    | NULL |        1 |
| bird    | f    |        1 |
| cat     | f    |        1 |
| cat     | m    |        1 |
| dog     | f    |        1 |
| dog     | m    |        2 |
| hamster | f    |        2 |
| snake   | m    |        1 |
+---------+------+----------+

Second (users) 第二(用户)

+--------+-----+
| user   |  id |
+--------+-----+
| amy    | 1   |    
| dav    | 2   |  
| mot    | 3   |       
| mmm    | 4   | 
| aaw    | 5   | 
| dsa    | 6   |  
+--------+-----+

I want to count and show values from table "information" for each user row on table "users" Like this 我想为表“ users”上的每个用户行计数并显示表“ information”中的值

+---------+------+----------+
| user   |  id |  count     |
+---------+------+----------+
| amy    | 1    |        6  |
| dav    | 2    |        2  |
| mot    | 3    |        0  |
| mmm    | 4    |        0  |
| aaw    | 5    |        0  |
| dsa    | 6    |        0  |
+---------+------+----------+

How can I do this query? 我该如何查询?

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

Isn't it something like: 是不是这样:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM