2011-12-15 73 views
2
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 

我需要从User_Image如何加入SQL查询的两个表没有重复

像这样得到的所有从所选用户的User_Master和一个缩略图名称字段:

User_Id Name   Age  Gender Thumbnail 
1   James  25  Male null 
2   John   30  Male ABC.Jpeg 

回答

3

一方式,假设你想要的图像具有最低的ID,因为显然有多个选项;

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 
+1

您不应该使用`RANK()`,因为它可能会返回具有相同值的多个答案。改用`ROW_NUMBER()`。 – Johan 2011-12-15 13:00:26