0

我在内部连接中遇到问题我想这样做

T1

id   (other atributes)
1
2
3


T2
id      t1_id  order    packat sent    package recievied  other attributes
1       1       0          date*            some date
2       1       1        some date          some date
3       1       2        some date          some date
4       1       3        some date            date**
5       2       0         date*             date**
6       2       0         date*             some date*
7       3       1        some date            date**

结果

结果

T1               T2             T2    package sent  package recievied
atributes   order(0)        order(3)    date*         date**
atributes   order(0)        order(0)    date*         date**
atributes   order(0)        order(1)    date*         date**

我尝试了不同的方法,但我无法得到这样的结果

select * from  table1 t1
INNER JOIN table2 t2part1 on(t2part1.t1_id = t1.id and t2part1.ordem =0)
INNER JOIN table t2part2 on (t2part2.t1_id = t1.id and max(t2part2.ordem))

我在另一个连接中使用 T1

4

1 回答 1

1

您可以使用嵌套来执行此操作row_number()

select *
from  table1 t1 INNER JOIN
      table2 t2part1
      on t2part1.t1_id = t1.id and t2part1.ordem =0 INNER JOIN
      (select t2part2.*,
              ROW_NUMBER() over (partition by t2part2.id order by t2part2.ordem desc) as seqnum
       from table t2part2
      ) t2part2
      on t2part2.t1_id = t1.id and t2part2.seqnum = 1
于 2013-02-04T19:43:16.077 回答