SQL:从两个表中查询,不能将组保持在单行中

时间:2016-05-18 20:51:24

标签: sql group-by row

我有两个数据库,第一个是 ItemStatus:

ItemNr  Status
452 
567     ok
237     ok

另一个是

ITEMLIST:

 Team   Type1   Type2   Type3
 Team1   345        
 Team2           567    
 Team3   237             452

我想获得下一个合并查询:

Team    Type1   Type1Status Type2 Type2Status   Type3 Type3Status   
Team1   345         
Team2                        567   Ok   
Team3   237     Ok                              452

到目前为止,我已经尝试了不同的方法来获取它(使用Left Join,Union,Case或简单的地方)但是当涉及到Team by Team时,我最终会丢失一行或多行信息。

我创建了一个SQLFiddle: http://sqlfiddle.com/#!7/fde53d/7

(架构是正确的,但SQL查询不是因为我为每个团队获得3行,因此这个问题)。

非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用left join

执行此操作
select t2.team, t2.type1, t11.status, t2.type2, t12.status, t2.type3, t13.status
from table2 t2 left join
     table1 t11
     on t2.type1 = t11.itemnr left join
     table1 t12
     on t2.type2 = t12.itemnr left join
     table1 t13
     on t2.type3 = t13.itemnr;