如何将一个查询输出用于python中的另一个查询?

Posted

技术标签:

【中文标题】如何将一个查询输出用于python中的另一个查询?【英文标题】:how to use one query output into other query in python? 【发布时间】:2020-07-14 13:18:39 【问题描述】:

我正在尝试将一个查询输出用于另一个。但没有得到正确的结果。你能帮我怎么做吗?

例子:

query1 = "select distinct lower(tablename) as tablename from medaff.imedical_metadata where object_type = 'View'"

上述查询的输出是:

tablename
vw_mdcl_insght
vw_fbms_interactions

我想在其他查询中使用上述输出。像这样-

query2 = "select * from medaff.imedical_business_metadata where objectname in ('vw_mdcl_insght', 'vw_fbms_interactions')"

这部分在python中怎么做?

我正在使用下面的代码来运行查询:

conn = redshift_conn()

with conn.cursor() as cur:
      query1 = "select distinct lower(tablename) as tablename from medaff.imedical_metadata where object_type = 'View'"
      cur.execute(sql_query)
      result = cur.fetchall()
      print(result)
      conn.commit()

      query2 = "select * from medaff.imedical_business_metadata where objectname in ('vw_mdcl_insght', 'vw_fbms_interactions')"
      cur.execute(sql_query)
      result = cur.fetchall()
      print(result)
      conn.commit()

【问题讨论】:

【参考方案1】:

我认为您可以使用in 查询:

select ibm.*
from medaff.imedical_business_metadata ibm
where ibm.objectname in (select lower(im.tablename) as tablename
                         from medaff.imedical_metadata im
                         where im.object_type = 'View'
                        );

最好让数据库来做。

【讨论】:

关系“ibm”不存在 @Shivam 。 . .嗯? ibm 是在from 子句中明确定义的表别名。【参考方案2】:

我使用了以下代码:

query = "select distinct lower(tablename) from medaff.imedical_metadata where object_type = 'View'"
cur.execute(query)
res = cur.fetchall()
print(res)
res = tuple([item[0] for item in res])
res = str(res)

【讨论】:

以上是关于如何将一个查询输出用于python中的另一个查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Microsoft Visual Studio 将查询插入到 C# 中的另一个查询中?

Apollo Client Angular:如何将从查询中获得的数据作为参数传递给graphql中的另一个查询?

python - 如何将一个类方法中的变量值用于python中的另一个类[关闭]

如何从Oracle中的另一个子查询中选择具有最大列的行

将查询结果存储在变量中以在 Postgresql 中的另一个查询中使用

如何查询 Express.js 中的特定内容?