【问题标题】:How to finish this sql opreation?如何完成这个sql操作?
【发布时间】: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


【解决方案1】:

使用JOINS,您可以轻松实现。

试试这个:

SELECT A.Id,A.User, B.NickName
FROM A
JOIN B ON A.ID = B.ID
WHERE A.ID IN(SELECT ID FROM A ORDER BY ID LIMIT 2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    相关资源
    最近更新 更多