0
user table
========
id(int) | name(varchar)
------------------------
1       | user1
2       | some_other_user



product table
===============
id(int) | user_id(int) | product(varchar) | status(varchar)
------------------------------------------------------------
1       | 1            | product1         | bought
2       | 1            | product3         | sold
3       | 2            | product22        | sold
4       | 2            | product2         | bought
5       | 2            | product4         | sold
6       | 1            | product5         | bought
7       | 1            | product7         | sold

status = sold1つのmysqlクエリを使用して、ユーザーの名前、ユーザーが持っている製品の数、およびそれらの製品の数を取得する必要があります。何か案は?

4

2 に答える 2

1

これを試して

SELECT u.id, u.name, 
COUNT(p.id) AS totalproducts,
COUNT(IF(p.status="sold",p.user_id,NULL))
FROM users u
INNER JOIN products p ON p.user_id = u.id
GROUP BY u.id
于 2012-04-10T11:41:06.723 に答える
1

次のクエリを試してください。

select 
    u.id, 
    u.name, 
    count(p.product) as totalproducts,
    sum(case when p.status = 'sold' then 1 else 0 end) as soldproducts
from user u
inner join product p on u.id=p.user_id
group by u.id, u.name
于 2012-04-10T11:41:28.880 に答える