在Python中的另一个SQL查询中使用一个SQL查询的输出
我正在使用Python上的SQL数据库。建立连接后,我想在另一个查询中使用一个查询的输出 示例:query1为我提供了架构中所有表的列表。我想在query2中使用query1中的每个表名在Python中的另一个SQL查询中使用一个SQL查询的输出,python,sql-server,jupyter-notebook,Python,Sql Server,Jupyter Notebook,我正在使用Python上的SQL数据库。建立连接后,我想在另一个查询中使用一个查询的输出 示例:query1为我提供了架构中所有表的列表。我想在query2中使用query1中的每个表名 query2 = "SELECT TOP 200 * FROM db.schema.table ORDER BY ID" 我想对query1输出中的每个表使用此查询。 有人能帮我编写Python代码吗?这里是一个关于如何做您想做的事情的工作示例。我没有在schemes中查找tablelist,但是您可以简单地
query2 = "SELECT TOP 200 * FROM db.schema.table ORDER BY ID"
我想对query1输出中的每个表使用此查询。
有人能帮我编写Python代码吗?这里是一个关于如何做您想做的事情的工作示例。我没有在schemes中查找tablelist,但是您可以简单地替换SQL代码来执行此操作。我只是通过联合两个表的语句来“伪造”。关于SQL代码还有很多其他答案,我不想把这个答案弄得乱七八糟: 看起来您可能缺少的关键部分是构建第二条SQL语句的
join
步骤。这应该是一个足够的出发点,以制定准确的你正在寻找什么
import pypyodbc
def main():
table_list = get_table_list()
for table in table_list:
print_table(table)
def print_table(table):
thesql = " ".join(["SELECT TOP 10 businessentityid FROM", table])
connection = get_connection()
cursor = connection.cursor()
cursor.execute(thesql)
for row in cursor:
print (row["businessentityid"])
cursor.close()
connection.close()
def get_table_list():
table_list = []
thesql = ("""
SELECT 'Sales.SalesPerson' AS thetable
UNION
SELECT 'Person.BusinessEntity' thetable
""")
connection = get_connection()
cursor = connection.cursor()
cursor.execute(thesql)
for row in cursor:
table_list.append(row["thetable"])
cursor.close()
connection.close()
return table_list
def get_connection():
'''setup connection depending on which db we are going to write to in which environment'''
connection = pypyodbc.connect(
"Driver={SQL Server};"
"Server=YOURSERVER;"
"Database=AdventureWorks2014;"
"Trusted_Connection=yes"
)
return connection
main ()
这给了我一个错误,行索引必须是整数,而不是str。对于这段代码:对于游标中的行:table_list.append(row[“thetable”]),我使用的是Python 3.6,但这不重要。试着打印出
行[“thetable”]
并查看它的内容。代码应该按原样工作。嘿!根据我的数据库进行了一些修改。我还有一个问题。我用于对每个表进行排序的ID对于所有表都是不同的。那么,有什么方法可以使用主键对所有表进行排序,甚至使用Python上的查询对第一列进行排序呢?是的,您需要将结果填充到字典中,并且可以对键和值进行排序。也许是一份字典清单……)如果你在这里搜索,有很多关于做不同排序的建议。如果你觉得我的答案有帮助,请接受:)这样的事情可以做到吗?def column(table,i):返回[row[0]for row in table]col=column(table,1)query=“从db.schema中选择TOP 10*。[{}]按[{}]排序。格式(table,col)