簡體   English   中英

Group_Concat 與連接

[英]Group_Concat with join

我有這兩個表: t_main

日期 Main_Status
1 2020 年 11 月 23 日 AA
1 2020 年 11 月 23 日 BB
2 2020 年 10 月 11 日 BB
3 2020 年 11 月 13 日 AA
3 2020 年 11 月 13 日 抄送
3 2020 年 11 月 13 日 BB
4 2020 年 11 月 13 日 AA

t_task

任務編號 任務_狀態
1 3 BB
1 3 抄送
3 1 AA
3 2 抄送
3 2 AA
3 1 BB
4 1 AA
4 2 AA
4 2 抄送

到目前為止,我已經分別實現了 group_concat t_main 和 t_task 的狀態。 這是所需的 output:

日期 Main_Status_Concat 任務編號 Task_Status_Concat
1 2020 年 11 月 23 日 AA BB 3 BB CC
2 2020 年 10 月 11 日 BB NULL NULL
3 2020 年 11 月 13 日 AA CC BB 1 AA BB
3 2020 年 11 月 13 日 AA CC BB 2 抄送AA
4 2020 年 11 月 13 日 AA 1 AA
4 2020 年 11 月 13 日 AA 2 AA CC

太感謝了!

編輯:

我可以單獨執行查詢,我不能加入它們

第一個查詢返回票證的所有連接狀態

SELECT t_main.ticket,
    Group_Concat( MAIN_STATUS Separator ' ' ) 
AS Main_Status_Concat FROM t_main t1
group by  t1.ticket;

2nd Query Returning ticket with task and concat task_status

SELECT  t_task.ticket, t_task.task_number,
    Group_Concat( TASK_STATUS Separator ' ' ) AS Task_Status_Concat FROM t_task t2
group by  t2.ticket, t2.task;

我可以將任務 ID 與 t_main 列一起加入,但無法正確顯示連續任務狀態。

將主表與獲取任務的子查詢連接起來。

SELECT m.ticket, m.date, GROUP_CONCAT(m.main_status SEPARATOR ' ') AS main_status_concat, t.task_number, t.task_status_concat
FROM t_main AS m
LEFT JOIN (
    SELECT ticket, task_number,
        Group_Concat(TASK_STATUS Separator ' ') AS Task_Status_Concat 
    FROM t_task
    group by ticket, task_number
) AS t ON m.ticket = t.ticket
GROUP BY m.ticket, t.task_number, m.date, t.task_status_concat

演示

暫無
暫無

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

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