SQLServer left join 出現比左表多的數據

create table a(
	id int,
	name varchar(100)
)
create table b(
	id int,
	name varchar(100)
)
insert into a(id,name) values(1,'a');

insert into b(id,name) values(1,'a');
insert into b(id,name) values(2,'a');

select a.id from a left join b on a.name=b.name;

錯誤

當右表出現2條匹配記錄時,返回比左表多的數據

可以使用max來解決

select a.* from a left join(
	SELECT * FROM b WHERE b.id IN (SELECT MAX(id) FROM b GROUP BY name)
) k on a.name=k.name

OK

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章