如何完成这个sql opreation?

时间:2018-05-03 06:44:59

标签: sql postgresql join

我想在B中选择行时查看表格A !!!!!

我hava到名为A和B的桌子 A中的数据是唯一的,但在B中是复杂的。 e.g:

表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

1 个答案:

答案 0 :(得分:2)

使用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);