1

我有两个要加入的表,每个表都有一个唯一的 ID。第一个表每个唯一 ID 有一条记录,第二个表每个唯一 ID 有许多记录。在连接结果集中,我想要表中的一条记录,每个唯一 id 有许多记录。什么记录都没关系。

一条记录/唯一值

-----------------------
id|other values
1 | blah
2 |blah
3 |blah

多条记录/唯一值

-----------------------------
id|code
1 | bv11
1 | bv11
1 | bv11

期望的结果

--------------
id|code
1 | bv11
2 |bv12
4

3 回答 3

2

这是一种方法,您可以从每个表中获取所需的任意多个字段:

select u.*, m.code
from Unique u left outer join
     (select m.*, row_number() over (partition by id order by (select NULL)) as seqnum
      from Multiple m
     ) m
     on u.id = m.id and
        m.seqnum = 1;
于 2013-09-16T00:30:59.627 回答
0

我能想到的最简单的方法是将表 1 连接到表 2 的分组中,在该分组中您按 id 分组并取例如您需要的所有其他列的最小值。

就像是

select a.id, bx.code from a, (select id, min(code) from b group by id) bx
where a.id = bx.id
于 2013-09-15T22:24:19.953 回答
0
 SELECT TM.id,
        TM.code

 FROM   TABLE_UNIQUE TU



        INNER JOIN TABLE_MULTIPLE TM ON

        TU.id = TM.id


GROUP BY TM.id, TM.code
于 2013-09-15T22:48:07.420 回答