假设有一个表picture(id,address_id,name),其中一个address_id可关联多个picture.
问题:
假设有一批address_id,如何写一句sql根据这一批address_id在picture表中取出与之关联的记录,保证每一个address_id只能取出与之关联的2条记录.
我想到的关键字是in 和limit,但是如何写出满足此需求的sql,还请各位赐教。
[b]问题补充:[/b]
select * from picture where address_id in(
select address_id from picture
where address_id in(一批address_id)
group by address_id
having count(*)=2
)
这个是有问题的,只能得到两条记录
[b]问题补充:[/b]
"不是只取每个address_id关联的两条记录吗?这样从picture表取出来的每个address_id都有两条记录了呀!能不能再说明一下"
主要是这个子句有问题:select address_id from picture
where address_id in(一批address_id)
group by address_id
having count(*)=2 , 这里表示只能取出address_id个数等于两个的记录。 需求是不管有多少条记录,取出前两条。
[b]问题补充:[/b]
to 81261686 (中级程序员):
不好意思,可能我前面需求表达得不清楚