从第一个sql查询获取结果列表,并对第一个查询的列表结果执行第二个查询

时间:2020-03-26 18:04:09

标签: sql amazon-redshift

因此,我是第一次使用redshift和SQL。由于对SQL的了解有限,我遇到了这个问题。

我有第一个查询,它向我返回带有columnA的表。 (TableX,TableY ...等)

SELECT tablename
FROM PG_TABLE_DEF
WHERE ("column" = 'columnA');

还有第二个查询,它向我返回表中包含columnA特定值的所有行。

SELECT * 
FROM TableX 
WHERE columnA='123934' 

我要实现的是从第一个查询(即表列表)中获取结果,并为每个表运行第二个查询,即为从第一个查询返回的每个表获取具有columnA = 123934值的行。

1 个答案:

答案 0 :(得分:0)

要实现的目标是使用动态SQL完成的。动态查询使您可以从字符串中运行查询。 我不是Redshit用户,但是要生成您需要运行的SQL字符串,可以使用以下查询:

SELECT 'SELECT * FROM '||tablename ||' WHERE ColumnA= ''123934''; '
FROM PG_TABLE_DEF
WHERE ("column" = 'columnA');

您可以尝试手动运行它。