【发布时间】:2019-01-29 00:59:01
【问题描述】:
我有三个表,例如客户、产品和采购。 购买:
id productId clientId amount
1 1 2 2500
2 2 3 3500
3 3 4 4500
4 6 1 5500
5 1 2 1500
6 3 3 2000
7 3 2 1000
客户:
id name
1 A
2 B
3 C
4 B
产品:
id product
1 Apple
2 Banana
3 Mango
6 Sweet
我可以查询这个
SELECT client.id, client.client_name, product.product, purchase.amount from client INNER JOIN purchase ON client.id=purchase.clientId INNER JOIN product ON product.id=purchase.productId GROUP BY client.id
我的输出是:
id client_name product amount
1 A Sweet 5500
2 B Apple 2500
3 c Mango 3500
4 D Banana 4500
但我想要输出,例如每个客户购买的数量在哪里
期望的输出:
id client_name Apple Banana Mango Sweet
1 A x x x x
2 B X x x x
3 c X x x x
4 D x x x x
如何通过查询来做到这一点。谢谢
【问题讨论】:
-
您需要进行“反透视”。类似stackoverflow.com/questions/15184381/…
-
这种转换称为旋转,并且已经在这里被询问和回答了很多次(几乎每天都如此)。链接重复问题的答案演示了如何在 mysql 中执行此转换。但是,请注意,与 mysql 相比,在应用程序代码中进行旋转可能更有效。