繁体   English   中英

在MySQL中选择2个相关表

[英]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.

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