SQL如何基于表B中的值从表A中加载所有相关行

SQL如何基于表B中的值从表A中加载所有相关行,sql,Sql,我有一个大的数据集,应该分块加载,下面的查询运行,但它只返回表a中的第一个实例(行),而我需要表a中在表B的基列中具有指定值的所有行 select * from table A as a where a.base in (select b.base from (select row_number() over() AS rn, *

我有一个大的数据集,应该分块加载,下面的查询运行,但它只返回表a中的第一个实例(行),而我需要表a中在表B的基列中具有指定值的所有行

select * 
from table A as a 
where a.base in (select b.base 
                 from
                     (select
                          row_number() over() AS rn, * 
                      from
                          "folder2"."table B" ) as b
                 where 
                     rn between 5 and 10)
表A

base    col2    co3
---------------------
 777    kjh    nbvm
 111    sd     dsf
 111    fs     cx
 222    xcv    bc
 222    gfd    xcb
 222    xcv    cxb
表B

base
------
000
777
888
999
444
111
222
333
444
555
上面的查询返回以下结果:

asin    col2    co3
--------------------
 111    sd      dsf
 222    xcv     bc
当我需要完整的结果时:

base    col2    co3
--------------------
 111    sd      dsf
 111    fs      cx
 222    xcv     bc
 222    gfd     xcb
 222    xcv    cxb

非常感谢您的帮助

我在表b中创建了这两个没有777 id的表,并按照以下步骤执行sql操作:

SELECT a.* 
  FROM table_a a, table_b b
 WHERE a.base = b.base
其中给出了结果:

base    col2    col3
111     sd      dsf
111     fs      cx
222     xcv     bc
222     gfd     xcb
222     xcv     cxb

这似乎是一个典型的示例,因为internaljoin关键字选择在两个表中都具有匹配值的记录

选择一个*
从

A.base=B.base上的内部联接B

您应该使用内部联接将表A与B联接,然后使用ORDER BY以获得所需顺序的输出

SELECT A.base as asin, a.col2, a.col3
FROM A
INNER JOIN B ON A.base = b.base
ORDER BY A.base

表格是无序集,除非使用“按cl排序”,否则不应假设rn 5到10可以复制