簡體   English   中英

group_concat和此記錄中每個單詞的頻率

[英]group_concat and frequency of each word in this record

這是我的數據庫。

表:

item: item_id, name
order: order_id
orderform: order_id, item_id, quantity

表格中的數據

item_id  name
1        ball
2        cap
3        bat

order_id
1
2
3
4

order_id item_id quantity
1        1       2
1        3       4
2        1       1
3        2       3
3        1       2
3        3       1
4        1       2

目前我正在使用以下sql查詢:

SELECT order_id, group_concat(name)
FROM order
LEFT JOIN orderform
  ON order.order_id = orderform.order__id
LEFT JOIN item
  ON orderform.item_id = item.item_id
GROUP BY order.order_id

這給了我這個樣子

order_id         name    
1                ball,ball,bat,bat,bat,bat
2                ball
3                cap,cap,cap,ball,ball,bat
4                ball,ball

但我希望它看起來像這樣

order_id  name
1         2 x ball,4 x bat
2         ball
3         3 x cap,2 x ball,bat
4         2 x ball

你必須走兩步:

第一步:解決項目並創建文本

SELECT 
  orderform.order_id AS order_id,
  CONCAT(orderform.quantity, ' x ',item.name) AS txt
FROM order orderform
LEFT JOIN item ON orderform.item_id = item.item_id

然后按訂單分組

SELECT
  order_id, 
  group_concat(txt) AS txt
FROM (
    SELECT 
      orderform.order_id AS order_id,
      CONCAT(orderform.quantity, ' x ',item.name) AS txt
    FROM order orderform
    LEFT JOIN item ON orderform.item_id = item.item_id
) AS baseview
GROUP BY order_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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