求mysql中满足如下需求的一句sql

假设有一个表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 (中级程序员):
不好意思,可能我前面需求表达得不清楚

查看全部
wangxdsharing
wangxdsharing
2008/09/09 13:12
  • 数据库
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

0个回复