2011-09-07 25 views
0

主表包含int id的信息。sql中的幾個翻譯連接

這些id的翻譯在第二個表中。第二個表的ID是指主表ID,並保存這些的文本描述。我需要一個提示如何編寫一個sql select子句來獲取主表中的所有字段,以便它的所有id值都顯示爲翻譯文本?

回答

1

假設表1有ID1,ID2,ID3和表2的翻譯,我會做這樣的事情(未測試):

Select T1.ID1, T1.ID2, T1.ID3, T21.Translation as Name1, T22.Translation as Name2, T23.Translation as Name3, 
from Table1 T1 left join Table2 T21 on T1.Id1 = T21.Table1_ID 
    left join Table2 T22 on T1.Id2 = T22.Table1_ID 
    left join Table2 T23 on T1.Id3 = T23.Table1_ID 
1

是這樣的:

select table1.*, table2.description from table1, table2 
where table1.id = table2.id; 
+0

這只是一個加入?我的意思是,主表中的字段類似於thing1_id,thing2_id等。 – mjgirl

+0

@mjgirl如果您能爲我們提供最少的代表性示例,說明您的表格的外觀,這將會非常有用。本克利福德的回答在你的問題的背景下是正確的,但似乎你實際上試圖提出一個不同的問題! –

+0

你可以寫一個更長的連接,每列有一個連接。我可以看到雖然變得相當快,但是:從table1選擇j1.description,j2.description,將table2選爲j1,將table2選爲j2,其中j1.id = table1.thing1_id,j2.id = table1.thing2_id –