![](/img/trans.png)
[英]How to build a SQL query to get data from two tables and a serialised column
[英]SQL query to select data from three tables and a serialised column
我有三個表:
特賣
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購買商品的用戶使用? 如果用戶進行了一次以上的購買,那么我如何才能獲得購買的總金額?
在MySQL 5.7.9及更高版本中:
SELECT buyer, SUM(grand_total) AS total
FROM sale
WHERE payment_status->"$[0].vendor" = 3
這樣的事情可能會起作用,盡管如前所述,您應該調整表結構以將供應商作為單獨的列包括在內:
SELECT * FROM
sale WHERE
payment_status = '[{"vendor":"3", "status":"paid"}]';
或者,如果您的json比這更復雜,則可以使用:
SELECT * FROM
sale WHERE
payment_status LIKE '[{"vendor":"3"%';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.