2009-09-02 151 views
0

我需要合併兩個SELECT語句。合併兩個SQL SELECT語句

我的數據庫中有兩個表,其中表A由兩個字段組成;類型和計數器。表B由兩個字段組成;來源和目的地。

 
Table A has three items; 
        { 1, 5000 }, { 2, 10000 } and { 3, 15000 }. ({Type, Counter}) 
Table B has two items; 
        { 5000, 10000 } and { 10000, 150000 }. ({Source, Destination}) 

即,表B的值從表A

數據I具有可用於我的查詢由數據都在表A型(1,2和3)。

查詢(我以後的那個)的最終結果應該是一個項目; {5000,10000,15000},其中列分別應爲{Source,Middle,Destination}。但是,我一直無法創建可以以這種格式顯示的查詢。

我能夠使用INNER JOIN獲取數據,其中結果顯示爲兩個項目; {5000,10000}和{10000,15000}。 (不是簡單的說,如果表將包括其他項目,以及表B中的內容。)

(有明顯的兩個表中遠遠更多的項目比我上面顯示。)

所以,如何編寫SQL查詢以使結果顯示爲{5000,10000,15000}(具有適當的列名稱)?

+0

你可以發佈你已經嘗試在SELECT語句? – kemiller2002 2009-09-02 11:32:45

+0

是否只有一箇中間?或者你的「路徑」是5000 - > 10000 - > 15000 - > 20000 - > 25000?在這種情況下,你的專欄會是什麼樣子? – butterchicken 2009-09-02 11:34:26

+0

有一箇中間。 以下是我的(不正確的選擇); SELECT * FROM 表B INNER JOIN 表A TD1 ON TableB.SourceType = TB1.Type INNER JOIN 表A TD2 ON TableB.DestinationType = TD2.Type INNER JOIN 表A TD3 ON TableB.DestinationType = TD3.Type INNER JOIN 表A TD4 ON TableB.DestinationType = TD4.Type WHERE TD1.Counter = 5000 AND TD2.Counter = 10000 OR TD1.Counter = 10000 AND TD3.counter = 15000 – 2009-09-02 11:42:31

回答

2

從你的問題,你沒有任何使用或需要表A - 你只是簡單地加入表B自己Source =目的地。

您的查詢應該是

SELECT a.Source, a.Destination, b.Destination 
FROM [Table B] as a INNER JOIN [Table B] as b 
ON a.Destination = b.Source 
+0

這似乎已經做到了。謝謝。我想我是盲目的,我需要有任何輸入,但顯然不是。 – 2009-09-02 11:48:43

+0

我發佈了一個正確的答案,你爲什麼投票呢?我在看到你之前發佈了它,並且我更喜歡我的。 – 2009-09-02 12:20:27