我有三张桌子:
出售
sale_id buyer grand_total payment_status
42 1 1000 [{"vendor":"3","status":"paid"}]
43 1 2000 [{"vendor":"1","status":"paid"}]
44 1 6000 [{"vendor":"3","status":"paid"}]
45 2 3000 [{"vendor":"3","status":"paid"}]
46 8 3000 [{"vendor":"3","status":"paid"}]
47 8 5000 [{"vendor":"1","status":"paid"}]
用户
user_id
1
2
8
供应商
vendor_id
1
2
3
46
我想要一个查询,选择从所有特定供应商处购买东西的所有用户。
例如。如何从vendor_id 3购买所有已购买的用户?如果用户进行了多次购买,我如何购买总金额?
答案 0 :(得分:2)
在MySQL 5.7.9及更高版本中:
SELECT buyer, SUM(grand_total) AS total
FROM sale
WHERE payment_status->"$[0].vendor" = 3
答案 1 :(得分:1)
这样的东西可以工作,虽然如前所述,你应该调整你的表结构,将供应商作为单独的列包括在内:
SELECT * FROM
{销售{1}} {PAYMENT_STATUS {1}}
或者如果您的json比这更复杂,您可以使用:
WHERE
{销售{1}} {PAYMENT_STATUS {1}}