我研究了大约200个关于mysql复杂查询的示例页面,但它仍然存在。Mysql complex从4个表格中选择查询
这是我stucture
Table name: zones
zoneId | zoneName
------------------
Table name: customers
customesId | zoneId | customerName
----------------------------------
Table name: products
productId | productName
-----------------------
Table name: sales
sid | zoneId | customerId | productId | amount
----------------------------------------------
是否有可能仅通过查询得到下面的输出?
zoneName | customerName | productName | amount(SUM)
---------------------------------------------------
ZoneX | customerA | productName_1 | 10
| | productName_2 | 0
| | productName_3 | 4
| | productName_4 | 0
ZoneX | customerB | productName_1 | 7
| | productName_2 | 0
| | productName_3 | 4
| | productName_4 | 3
.......
我想为 “0”,即使客户或产品没有销售
我想:
SELECT zones.zoneName
, customers.customerName
, products.productName
, SUM(amount) AS amount
FROM customers
INNER JOIN zones
ON customers.zoneId = zones.zoneId
LEFT JOIN sales
ON customers.customerId = sales.customerId
LEFT JOIN products
ON sales.productId = products.productId
是的,这是可能的。虽然我不知道你为什么不想在每条记录上显示zonex和customerA。另外为了得到0记录你需要使用一个外连接。 – xQbert
看起来您需要'合并(Amount,0))为Amount',并且您需要将每个客户交叉连接到产品,以便在无销售时处理。 – xQbert
认真考虑处理应用程序级代码中的数据显示问题。 – Strawberry