[英]get data from two table(parent-child) mysql query?
我有兩個表:
第一個表數據(工作流程):
workflow_id, name, process_id, branch_id, is_parralel , flow_order
80, AA, 27, 0, No, 1
81, , 27, 0, Yes, 2
82, CC, 27, 0, No, 3
83, BB, 27, 116, No, 1
84, DD, 27, 117, No, 1
85, EE, 27, 116, No, 2
第二個表數據(workflow_parallel_branch):
id, workflow_id, branch_name
116, 81, Branch1
117, 81, Branch2
我想獲取以下格式的數據。 我怎么能做這個查詢?
workflow_id, name
80, AA
83, BB
85, EE
84, DD
82, CC
我猜他希望它們按 80、81、82 的順序排列,其中 81 被指定的分支 116、116、117 替換。然后回到原來的順序 -> 82
不知道這在mysql中是否有效:
with workflow (workflow_id, name, branch_id) as
(values (80, 'AA', 0), (81, NULL, 0), (82, 'CC', 0),
(83, 'BB', 116), (84, 'DD', 117), (85, 'EE', 116)),
workflow_parallel_branch (id, workflow_id) as
(values (116, 81), (117, 81)),
tmp (id, br, orig, name) as
(select coalesce(b.workflow_id, a.workflow_id), a.branch_id,
a.workflow_id, a.name
from workflow a
left join workflow_parallel_branch b on a.branch_id = b.id
order by a.workflow_id, a.branch_id)
select orig, name
from tmp
where name is not null
order by id,br
==>
ORIG NAME
80 AA
83 BB
85 EE
84 DD
82 CC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.