如何在SQL查询中不重复地联接两个表
我需要从如何在SQL查询中不重复地联接两个表,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我需要从User\u Master中获取所有字段,并从User\u Image表中获取所选用户的一个缩略图名称 像这样: User_Master (ID is Primary Key identity) ID Name Age Gender 1 James 25 Male 2 John 30 Male User_Image (User_Id is foreign key from User_Master)
User\u Master
中获取所有字段,并从User\u Image
表中获取所选用户的一个缩略图名称
像这样:
User_Master (ID is Primary Key identity)
ID Name Age Gender
1 James 25 Male
2 John 30 Male
User_Image (User_Id is foreign key from User_Master)
ID User_Id Thumbnail
1 2 ABC.Jpeg
2 2 AB.jpeg
一种方法是,假设您想要具有最低id的图像,因为显然有多个选项
User_Id Name Age Gender Thumbnail
1 James 25 Male null
2 John 30 Male ABC.Jpeg
您不应该对此使用
RANK()
,因为它可能会返回具有相同值的多个答案。使用ROW\u NUMBER()
代替。非常感谢兄弟..上帝保佑你:)它现在正在处理ROW\u NUMBER()。
select
id, name, age, gender, thumbnail
from (
select
rank() over (partition by m.id order by i.id asc) as rank,
m.id,
name,
age,
gender,
thumbnail
from
User_Master m left join User_Image i on (i.user_id = m.id)
) t where rank = 1