如何在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