MST

星途 面试题库

面试题:Python中如何使用MySQLdb库进行多表联合查询

假设你有两个MySQL数据库表,`students`表包含字段`id`、`name`、`class_id`,`classes`表包含字段`id`、`class_name`。请使用Python的MySQLdb库编写代码,实现查询出每个学生及其所属班级名称的结果集,并将结果以列表形式返回。
37.4万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import MySQLdb


def get_student_class_info():
    try:
        # 连接数据库
        conn = MySQLdb.connect(
            host='localhost',
            user='root',
            passwd='password',
            db='your_database',
            port=3306,
            charset='utf8'
        )
        cursor = conn.cursor()
        # 执行SQL查询
        sql = """
            SELECT s.id, s.name, c.class_name
            FROM students s
            JOIN classes c ON s.class_id = c.id
        """
        cursor.execute(sql)
        results = cursor.fetchall()
        result_list = []
        for row in results:
            student_info = {
                'id': row[0],
                'name': row[1],
                'class_name': row[2]
            }
            result_list.append(student_info)
        cursor.close()
        conn.close()
        return result_list
    except MySQLdb.Error as e:
        print(f"Error {e.args[0]}: {e.args[1]}")
        return []


调用函数获取结果:

if __name__ == "__main__":
    result = get_student_class_info()
    print(result)


上述代码需要根据实际的数据库连接信息(如主机、用户名、密码、数据库名等)进行修改。代码实现了连接MySQL数据库,执行关联查询获取每个学生及其所属班级名称,并将结果以列表形式返回。列表中的每个元素是一个字典,包含学生的idname和对应的class_name