使用其他表中的第一个匹配行加入表中的所有行

时间:2014-09-11 09:15:17

标签: sql sql-server oracle left-join greatest-n-per-group

我有2个表格,我想要table1 left join table2,想法是显示所有table1' s行和每个table1' s行,我搜索所有table2中的记录,直到第1行匹配值。

所以results' row number = talbe1's row number,只需添加table2的第一个匹配值,但在这里我得到results' row number > talbe1's row number

1 个答案:

答案 0 :(得分:0)

这取决于您的表结构以及您如何加入它们。我可以想一个例子,结果的行号>表1行号。

create table staff (
     staff_id int,
     name varchar(100)
)
;
create table stationery (

    s_id int,
    name varchar(100),
    staff_id int
)
;
insert into staff values (1, 'Peter');
insert into staff values (2, 'Sally');

insert into stationery values (1, 'ruler', 1);
insert into stationery values (2, 'pencil', 1);
insert into stationery values (3, 'pencil', 2);

select * 
from staff s1
left join stationery s2 on s1.staff_id = s2.staff_id ;

STAFF_ID NAME S_ID


1彼得1
1彼得2 2 Sally 3