[英]Select of 2 related tables in MySQL
我有这两个表:
表用户:
id | name
---------
1 | Joe
2 | Sara
3 | Michael
表销售:
id | product | user_id
------------------------
1 | Car | 2
2 | Truck | 3
3 | motorcycle| 1
4 | Car | 2
5 | Truck | 1
6 | Car | 3
7 | Car | 2
8 | Truck | 3
9 | Car | 2
10 | Car | 3
我想要以下内容:
User Name | Car | Truck | Motorcycle
Joe | 0 | 1 | 1
Sara | 4 | 0 | 0
Michael | 2 | 2 | 0
任何帮助,将不胜感激
SELECT Users.name,
SUM(Case
WHEN product='Car' then 1
ELSE 0
) AS Car,
SUM(Case
WHEN product='Truck' then 1
ELSE 0
) AS Truck ,
SUM(Case
WHEN product='Motorcycle' then 1
ELSE 0
) AS Motorcycle,
FROM Users
LEFT JOIN Sales ON Users.id = Sales.user_id
GROUP BY Users.name
SELECT
name as UserName ,
SUM(product= 'Car')AS Car,
SUM(product= 'Truck')AS Truck,
SUM(product= 'motorcycle') AS motorcycle
FROM Users join Sales
on Users.id = Sales.user_id
GROUP BY name
希望对您有所帮助,但这仍然是您应该检查数据透视表的标准解决方案。
-仅对少数产品有效,
Select username
, Sum(case when product = 'Car' then 1 else 0 End) Cars
, Sum(case when product = 'Truck' then 1 else 0 End) Truck
, Sum(case when product = 'motorcycle' then 1 else 0 End) motorcycle
From Sales s join users u on s.userid = u.userid
group by username
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.