2014-02-09 37 views
0

我已經表A中的ord1下令:連接表有可能出現多次維持秩序

_______________ 
| ord1 | col1 | 
--------------- 
| 1 | abc | 
--------------- 
| 2 | def | 
--------------- 
| 3 | ghi | 
--------------- 
| 4 | abc | 
--------------- 
| 5 | jkl | 
--------------- 
| 6 | def | 
--------------- 
| 7 | mno | 
--------------- 

...和表B,通過ord2下令:

_______________ 
| ord2 | col2 | 
--------------- 
| 1 | abc | 
--------------- 
| 2 | ghi | 
--------------- 
| 3 | pqr | 
--------------- 
| 4 | abc | 
--------------- 

我需要加入一個表與表B保存有序的方式來獲得:

___________________ 
| ord1| ord2| col1| 
------------------- 
| 1 | 1 | abc | 
------------------- 
| 3 | 2 | ghi | 
------------------- 
| 4 | 4 | abc | 
------------------- 

所以,我需要加入col1和col2,但表B必須採取行動作爲一個 「過濾器」 爲表A 注意多次出現在表A和B表

問候, 安東尼

+2

什麼DBMS?.. ... – Mihai

+0

如果表1中的第7行是「ghi」而第3行是其他內容會發生什麼? –

回答

0

嘗試

SELECT t1.ord1,MAX(t2.ord2)ord2,t1.col1 
FROM table1 t1 JOIN table2 t2 
ON t1.col1=t2.col2 
AND t1.ord1>=t2.ord2 
GROUP BY t1.ord1 

SQL Fiddle

+0

你爲什麼要比較ord1和ord2?在表B ord2中可以是500,600,700,800而不是1,2,3,4。 – user3290675

+0

Dbms應該不是問題,但它是Oracle。 – user3290675