这是我以前的问题的延伸,恰好是因为该项目在另一个表中...
我有4张桌子:
大车
+------------+----------+------------+---------+
| customerid | itemcode | cartactive | type |
+------------+----------+------------+---------+
| 9916 | X | Yes | Package |
| 9916 | Y | Yes | Product |
+------------+----------+------------+---------+
产品
+-------------+------------+
| ProductCode | shipWeight |
+-------------+------------+
| Y | 1 |
| ITEM1 | 1 |
| ITEM2 | 2 |
| ITEM3 | 1 |
+-------------+------------+
包裹
+-------------+
| PackageCode |
+-------------+
| X |
+-------------+
包装项目
+-------------+-------------+
| PackageCode | ProductCode |
+-------------+-------------+
| X | ITEM1 |
| X | ITEM2 |
| X | ITEM3 |
+-------------+-------------+
所以基本上但不容易,我试图获取购物车中所有物品的总和,我们在这里看到应该是5。
这是我写的返回“不唯一表/别名”的查询:'products':
Select
SUM(products.shipWeight) as totalweight
FROM
cart
Left JOIN products ON products.ProductCode = cart.itemCode
LEFT JOIN packageitems d on cart.itemCode = packageitems.PackageCode
LEFT JOIN products on d.ItemCode = products.ProductCode
WHERE
cart.customerId= '9916' AND
cart.cartActive = 'Yes'
我认为我必须首先找到所有常规产品的总和,然后再找到包装中的所有项目并计算其运输成本并将它们加在一起。我对此有些陌生。帮助将不胜感激。
只需加入使用 OR
我没有包括在内,SUM
因此您可以看到结果。
SELECT c.`itemcode`, pi.`ProductCode`, p.`ProductCode`, p.`shipWeight`
FROM cart c
LEFT JOIN PackageItems pi
ON c.`itemcode` = pi.`PackageCode`
LEFT JOIN products p
ON p.`ProductCode` = c.`itemcode`
OR p.`ProductCode` = pi.ProductCode
WHERE c.`customerid`= '9916' AND
c.`cartactive` = 'Yes'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句