我正在尝试创建一个报告,以显示具有各种属性的订购产品的数量。每个产品可能具有一个或两个属性,这些属性将相应地分开。
下面的示例是Cup
仅具有1个属性,而Shirt
和Trouser
具有2个属性。
是否可以使用meta_key
和meta_value
来实现此目标,如下表所示?我正在使用Laravel ver5.8,因此任何使用Eloquent的解决方案也都可以。
谢谢您的帮助。
ITEM:
id name
1 Cup
2 Shirt
3 Trouser
订单:
id item_id
1 1
2 2
3 3
4 2
标准:
id order_id meta_key meta_value
1 1 colour Blue
2 2 colour Red
3 2 size XL
4 3 colour Blue
5 3 size S
6 4 colour Red
7 4 size XL
预期的报告结果:
Item order_quantity
Cup Blue 1
Shirt Red XL 2
Trouser Blue S 1
答案 0 :(得分:0)
您可以执行类似的分组操作。
SELECT concat(name, " ", meta_key),
count(order_id)
FROM item,
orders,
criteria
WHERE item.id=orders.item_id
AND orders.id=criteria.order_id
GROUP BY concat(name," ",meta_key)