2011-12-15 78 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