2011-12-21 43 views
0

那麼,我在sql數據庫中有兩個表格。一個有一個ID列和它的描述。從第一個表格中選擇數據並獲得表格1中第二個表格的2列的字段

第二個表中有許多RefID1和RefID2中的兩個特定列,因此它們都有來自第一個表的ID。

現在的問題是,我想從表2中編寫一個sql select語句,並在RefID1和RefID2而不是數字ID的位置顯示第一個表的描述。

希望我解釋我的問題:)

我將是您的答覆非常感謝清楚。

問候,

Mujtaba Panjwani

+0

描述對refID1或refId2您希望從(tabl1)返回的所有領域?您可以通過任何方式查看Inner Join。 – Zohaib 2011-12-21 04:59:23

+0

我不明白爲什麼這需要一個內部連接。如果RefID1被設置且RefID2不是,反之亦然。 – 2011-12-21 05:11:00

回答

2

此語句允許任RefID1或RefID2是空的可能性。如果相應的RefID#爲空,它將爲a.description或b.description返回空值。從返回RefID1和RefID2停止查詢的唯一辦法是明確列出,而不是使用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 
+0

非常感謝。它完美地解決了這個問題。 – 2011-12-26 07:39:04

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 
+2

-1我**真的**不認爲這是解決方案。 – 2011-12-21 05:13:38

+0

那麼,你的第一個解決方案對我來說太複雜了,以致於我無法將其轉化爲我的場景,而第二種解決方案的工作原理與@ malcolm-ohare實際上是一樣的,所以非常感謝幫助:) – 2011-12-26 07:47:15

相關問題