【发布时间】:2018-05-03 06:44:59
【问题描述】:
我想在选择 B 中的行时对表 A 进行分页!!!!!
我有一个名为 A 和 B 的表 A 中的数据是唯一的,但 B 中的数据很复杂。 例如:
表 A:
id user
1 a
2 b
3 c
表 B:
id nickname
1 aa
1 aaa
1 aaaa
2 bb
2 bbb
3 cc
我的期望:
id user nickname
1 a aa
1 a aaa
1 a aaaa
2 b bb
2 b bbb
现在我想每次在 A 中选择 2 行,但在 B 中选择 A.id=B.id 的所有行。 如何编程?
我原来的sql:
select * from A, B where A.id=B.id limit 2;
return:
id user nickname
1 a aa
1 a aaa
这不是我的期望。
分两步:
1.
select id from A limit 2 offset 0
2.
for id in selected_A
select * from B where B.id=selected_A.id
这是一个解决方案:
select * from B join (select * from A limit 2 offset 0) as A on A.id=B.id
【问题讨论】:
-
显示您的预期输出。
-
一个简单的连接?
select * from a join b using (id) -
试试我的答案,它会对你有所帮助。
-
@DineshDB 重点不是ID
-
@yanwii,是的。但我已经在回答中更改了它。
标签: sql postgresql join