表一 User
id,name
1 张三
2 李四表二 Photo
id,imgurl,UserID
1 1.gif 1
2 2.gif 1
3 3.gif 1
4 4.gif 2
5 5.gif 2
现在只想每人显示一张照片
需要 select 出来的结果如下id,name,imgurl
1 张三 1.gif
2 李四 4.gif请问SQL语句要怎么写?数据库为Access
id,name
1 张三
2 李四表二 Photo
id,imgurl,UserID
1 1.gif 1
2 2.gif 1
3 3.gif 1
4 4.gif 2
5 5.gif 2
现在只想每人显示一张照片
需要 select 出来的结果如下id,name,imgurl
1 张三 1.gif
2 李四 4.gif请问SQL语句要怎么写?数据库为Access
left join (select top 1 id,imgur1,userid from photo)t on a.id=t.id
(select id,name from user ) a inner join
(select min(id) ,min(imgurl) img ,userid from photo group by userid) b on a.id=b.userid
(
select * from 表二 a,
(select userid,min(id) as id from 表二 group by userid) b
where a.id = b.id and a.userid = b.userid
) d
where c.id = d.userid
inner join (select min(id) as id,UserID from Photo) b
on
a.[id]=b.userid
inner join
Photo c
on
b.id=c.id
insert @u select
1, '张三'
union all select
2, '李四'declare @p table(id int,imgurl varchar(30),UserID int)
insert @p select
1, '1.gif' , 1
union all select
2, '2.gif' , 1
union all select
3, '3.gif' ,1
union all select
4 , '4.gif' , 2
union all select
5 , '5.gif' , 2
select UserID, name, imgurl from @p p
join @u u on u.id= p.UserID
where p.id =(select top 1 id from @p where UserID=p.UserID)UserID name imgurl
----------- -------- ------------------------------
1 张三 1.gif
2 李四 4.gif(所影响的行数为 2 行)