Sql 如何将多个select语句连接在一起

Sql 如何将多个select语句连接在一起,sql,sql-server,Sql,Sql Server,我有一个主表id附件CarColor变量值(1863862 6 2 5)等(所有id都在我的主表中),还有5个其他表,如car color、variant等,都有值 我需要id=mastertable.id的每个子表的值 像 我的问题是如何将所有5条select语句连接在一起 还是有更好的解决办法 我想你需要这个 select * from mastertable left join carcolortable on mastertable.carcolor=carcolortable.id

我有一个主表id附件CarColor变量值(1863862 6 2 5)等(所有id都在我的主表中),还有5个其他表,如car color、variant等,都有值


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

我的问题是如何将所有5条select语句连接在一起 还是有更好的解决办法

我想你需要这个

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
(和其他)中所述,在
varchar
中包含一个以逗号分隔的
Id
列表,那么它应该是:

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))+',%'
         )

请编辑您的问题-几乎无法阅读。答案很简单,但你需要弄清楚,现在我甚至可以正确地阅读。你希望你的结果如何显示?最好的方法是使用Joinsi需要id=mastertable的每个子表的值。idi在我的主表中有5列,并且有5个子表(主表的每列有一个子表)与主表连接,我需要id=mastertable.id的每个表的值。您使用的是哪种DBMS?神谕PostgreSQL?DB2?感谢valex的帮助。。现在唯一的问题是,如果选择了多个附件,那么它们将被存储在主表中,并使用类似789786的coma分隔符,sql将生成错误消息MSG 245,级别16,状态1,将nvarchar值“863862”转换为数据类型int时,第1行转换失败。它将863和862作为一个单独的字符。我已经为该案例的答案添加了一个查询选择*from apraautoDB.dbo.tbl_Apra_NewCar_Booking_Details left join apraautoDB.dbo.tbl_Apra_NewCarColor on apraautoDB.dbo.tbl_Apra_NewCar_Booking_Details.CarColor=apraautoDB.dbo.tbl_apraautoDB.dbo.tbl_apraautoDB.dbo.tbl_apraautoDB.dbo.tbl_apraautoDB.dbo.tbl_NewCar_Booking_Details.variantID=apraautoDB.dbo.tbl_apraautoDB.dbo.tbl_NewCar_Variant.Id左加入apraautoDB.dbo.tbl_NewCar_(',“,+apraautoDB.dbo.tbl_NewCar_Booking Details+”,”上的附件,如“%”,+CAST(apraautoDB.dbo.tbl_Accessories.ID为varchar(100))+',%')我没有得到附件的名称
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
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))+',%'
         )