2014-02-09 28 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