简体   繁体   English

从两个表(父子)mysql 查询中获取数据?

[英]get data from two table(parent-child) mysql query?

I have two Tables:我有两个表:

First Table Data(workflow):第一个表数据(工作流程):

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

Second Table data(workflow_parallel_branch):第二个表数据(workflow_parallel_branch):

id, workflow_id, branch_name
116,  81,         Branch1
117,  81,         Branch2

I want to get data in the below format.我想获取以下格式的数据。 How could I make this query?我怎么能做这个查询?

workflow_id,  name
  80,           AA
  83,           BB
  85,           EE
  84,           DD
  82,           CC

I guess he wants them in the order 80, 81, 82 where 81 is replaced by the assigned branches 116, 116, 117. then back to the original order -> 82我猜他希望它们按 80、81、82 的顺序排列,其中 81 被指定的分支 116、116、117 替换。然后回到原来的顺序 -> 82

don't know if this is valid in mysql:不知道这在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM