SQL如何基于表B中的值从表A中加载所有相关行
我有一个大的数据集,应该分块加载,下面的查询运行,但它只返回表a中的第一个实例(行),而我需要表a中在表B的基列中具有指定值的所有行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, *
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可以复制