这个请求是从一个复杂的请求中提取的。
在此示例中,我有两个数据表:user_table、ref 和一个关联表:user_ref_asso。
架构和测试查询在这里:http ://sqlfiddle.com/#!4/0a302/18
我尝试使用“where rownum < X”来限制 USER_TABLE 结果的数量,但它限制了总结果(user + ref)。
我目前的查询是:
select * from
(SELECT u.user_id, r.ref_id, u.name, r.ref
FROM user_table u
INNER JOIN user_ref_asso ur
ON ur.user_id = u.user_id
INNER JOIN REF r
ON r.ref_id = ur.ref_id
order by u.user_id, r.ref_id)
WHERE rownum <= 2;
例如,如果没有行限制的结果是:
USER REF
1 1
1 2
2 1
2 2
3 1
3 2
如果我将行数限制设置为 2,则预期结果将是(2 个不同的用户):
USER REF
1 1
1 2
2 1
2 2
但就我而言,结果是(2 个结果):
USER REF
1 1
1 2
如何限制不同 user_id 列上的行数?