2011-09-07 72 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 –