-1

我有一个 mastertable id Accessories CarColor 变体值(1 863,862 6 2 5)等(所有 id 都在我的 mastertable 中)和 5 个其他表,如汽车颜色、变体等具有值


id   color
5    red
6    blue
3    green

我需要每个 id = mastertable.id 的子表的值

SqlCommand sqlCommand = new SqlCommand(" select * from cartable where carcolor.id = mastertable.carcolor ") ; 
SqlCommand sqlCommand = new SqlCommand(" select * from varianttable where variant.id = mastertable.variant ")  ; 
SqlCommand sqlCommand = new SqlCommand ("select * from accessoriestable where accessories.id = mastertable.accessories ") ;// 

我的问题是如何将所有 5 个选择语句连接在一起或对此有更好的解决方案?

4

1 回答 1

0

我猜你需要这个?

select * from mastertable
left join carcolortable on mastertable.carcolor=carcolortable.id
left join varianttable on mastertable.variant=varianttable.id
left join accessoriestable on mastertable.accessories=accessoriestable.id

如果正如您在评论mastertable.carcolor(和其他人)中所描述的那样,它包含一个逗号分隔的Id's列表,varchar那么它应该是:

select * from mastertable
left join carcolortable on 
        ( ','+mastertable.carcolor+',' 
          LIKE 
          '%,'+CAST(carcolortable.id as varchar(100))+',%'
         )
left join varianttable on 
        ( ','+mastertable.variant+',' 
          LIKE 
          '%,'+CAST(varianttable.id as varchar(100))+',%'
         )

left join accessoriestable on 
        ( ','+mastertable.accessories+',' 
          LIKE 
          '%,'+CAST(accessoriestable.id as varchar(100))+',%'
         )
于 2012-12-07T07:37:12.163 回答