簡體   English   中英

SQL查詢從三個表和一個序列化的列中選擇數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM