从第1个表中选择数据,并获得表1中2列的第2个表的字段

时间:2011-12-21 04:55:39

标签: sql sql-server visual-studio select

好吧,我在sql数据库中有两个表。一个有ID列及其描述。

第二个表中有两个特定的列,即RefID1和RefID2,因此它们都具有来自第一个表的ID。

现在的问题是我想从表2中编写一个sql select语句,并在RefID1和RefID2的位置显示第一个表的描述,而不是数字ID。

希望我在解释我的问题时很清楚:)

我将非常感谢您的回复。

此致

Mujtaba Panjwani

2 个答案:

答案 0 :(得分:2)

此语句允许RefID1或RefID2为空的可能性。如果相应的RefID#为空,它将返回a.description或b.description的空值。停止查询返回RefID1和RefID2的唯一方法是明确列出要从A(tabl1)返回的所有字段,而不是使用A。*

SELECT A.*, B.description as description1, C.description as description2 FROM tabl1 A
LEFT JOIN tbl2 B on a.RefID1 = B.ID
LEFT JOIN tbl2 C on a.RefID2 = C.ID

答案 1 :(得分:1)

  select first.description  , second.description  from tableone
left join 
(select a.id, a.description from tableone a inner join tabletwo b on a.id = b.RefID1)first
on first.id = tableone.id
left join
(select a.id, a.description from tableone a inner join tabletwo b on a.id = b.RefID2)second
on second.id = tableone.id

   select a.description  , b.description  from tabletwo  left join tableone a  
   on tabletwo.RefID1 = a.id left join tableone b   
   on tabletwo.RefID2 = b.id