好吧,我在sql数据库中有两个表。一个有ID列及其描述。
第二个表中有两个特定的列,即RefID1和RefID2,因此它们都具有来自第一个表的ID。
现在的问题是我想从表2中编写一个sql select语句,并在RefID1和RefID2的位置显示第一个表的描述,而不是数字ID。
希望我在解释我的问题时很清楚:)
我将非常感谢您的回复。
此致
Mujtaba Panjwani
答案 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