2012-12-07 55 views
-1

我有一個mastertable ID配件CarColor變量值(1 863862 6 2 5)等(所有ID是要在我的mastertable)等5臺樣車色,變形等具有價值如何加入多個select語句一起


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個select語句峠值其他 或更好的解決方案呢?

+1

請編輯您的問題,這幾乎是不可讀。答案很簡單,但你需要清楚,現在我甚至可以正確閱讀。 – Namphibian

+0

你想如何顯示你的結果?最好的辦法是使用聯接 –

+0

我需要每個子表的值,其id = mastertable.id –

回答

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(及其他)描述包含在varcharId的一個逗號分隔的列表,則應該是:

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

感謝valex爲您的幫助..現在唯一的問題是,如果選擇多個配件,然後他們得到存儲在主表中與彗星分離器像789,786和SQL正在生成錯誤消息 –

+0

你使用什麼DBMS? – valex

+0

sql server management studio –