首页 > 解决方案 > 使用 Python 使用 SELECT 语句的 SQL 中的嵌套循环

问题描述

编程新手并试图找出一个任务。我必须用 Python 做一个只有 select 语句(没有 join 语句)的嵌套循环。有点不知所措如何做到这一点。

以下是我一直在使用的代码。但是在他们说没有定义名称 course_no 的地方不断收到错误消息。

如果这是一个 n00b 问题,请提前抱歉!

query = ("SELECT first_name, last_name FROM instructor")
query2 = ("SELECT course_no, section_no FROM section")

try:
    cursor.execute(query)

    print("Result set returned")

    for (first_name, last_name) in cursor:
        print(first_name + " " + last_name)

        for (first_name, last_name) in cursor:
            cursor.execute("SELECT course_no, section_no FROM section")
            print(course_no + " " + section_no)
    cursor.close()
except mysql.connector.Error as err:
    print(err)

标签: pythonmysqlloops

解决方案


我会尽我所能回答你的问题。course_no 确实没有定义,因为它包含在游标中。尝试再次循环游标,但这次是 course_no 和 section_no。另外我建议您为每个查询使用不同的游标,因为在下一个循环中,游标不再具有外部循环的值。展示一些代码:

try:
    cursor1.execute(query)

    print("Result set returned")

    for (first_name, last_name) in cursor1:
        print(first_name + " " + last_name)

        cursor2.execute("SELECT course_no, section_no FROM section")
        for (course_no, section_no) in cursor2:
            print(course_no + " " + section_no)
        cursor2.close()
    cursor1.close()
except mysql.connector.Error as err:
    print(err)

推荐阅读