简体   繁体   中英

MYSQL add row and count from diffrent table

I have mysql database with two tables.

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

+---------+------+----------+
| 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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