两表关联只取B表排序后的第一条记录

比如A表房源表,B表房源图片表,A与B是一对多的关系。B字段house_id关联表A字段id。

现在需要列出A表信息及其所属图片第一张的类型(按图片上传时间排序)。

SQL Server可通过“PARTITION BY”实现。

SELECT     TOP 15 h.id,
                  h.info_address,
                  m.image_type
FROM       mt_house_info_tbl h
INNER JOIN (SELECT i.*,
                   ROW_NUMBER() OVER (PARTITION BY i.house_id ORDER BY i.upload_time DESC) num
            FROM   dbo.house_images_info_tbl i
            WHERE  i.imgState <> 3) m ON m.house_id = h.id
                                         AND m.num = 1;

猜你喜欢

转载自www.cnblogs.com/zran/p/12566812.html
今日推荐