如何在单个查询中获取其中包含许多关系的父表和子表数据

时间:2016-07-26 14:35:29

标签: sql sql-server

我有两张桌子,主要孩子显示的图片是它的结构。 我想在单个查询中获取整个记录详细信息,即,如果主表中的 HWType 列为3(这是子表中的ID字段),我需要显示对应的值如果 ProdModel 是4,那么来自子表的ID就好了,那么子表中的值对应于4。

如何在单个查询中实现它。Table structure

2 个答案:

答案 0 :(得分:2)

就像@Serg所说的那样,根据需要多次加入主表和Child表。

select M.id, c1.Value HW, c2.Value Prod, c3.Value CD, c4.Value AV, c5.Value Comp
  from Main M 
       left join Child c1 on M.HWType = c1.ID
       left join Child c2 on M.ProductModel = c2.ID
       left join Child c3 on M.CDType = c3.ID
       left join Child c4 on M.AntivirusType = c4.ID
       left join Child c5 on M.Company = c5.ID;

答案 1 :(得分:1)

像这样:

select m.ID, m.HWType, m.ProductModel,  
       c.Value,  
       p.SomeField   
from   Main m  
  left outer join Child c on m.HWType = c.ID  
  left outer join Product p on m.ProductModel = p.ID  

依旧......