Python MySQL——连接表

原文:https://www.studytonight.com/python/python-mysql-table-join

在本教程中,我们将学习如何在 Python 中连接两个或多个 MySQL 表。

为了将 MySQL 中的两个或多个表组合起来,使用了JOIN语句。这里需要注意的一点是,在两个表中必须有一个公共列,该操作将基于该列执行。

我们已经在【今晚 T2】学习数据库中创建了学生表(来自 Python MySQL 创建表教程)。让我们创建另一个名为结果的表,之后我们将加入这两个表。

下面我们有代码来创建一个名为 results 的表。成绩学生表都有一个共同的字段,那就是罗诺

python mysql join example

Yuo 可以直接运行查询,在 MySQL 命令行中创建新表。

Python MySQL -连接两个表

下面我们有一个代码片段,其中我们将基于列rollino连接两个名为结果学生的表:

import mysql.connector as mysql

db = mysql.connect(
    host = "localhost",
    user = "yourusername",
    passwd = "yourpassword",
    database = "studytonight"
)

cursor = db.cursor()

sql = "SELECT students.rollno, students.name,students.Branch,students.Address, results.status from students INNER JOIN results ON students.rollno=results.rollno;"

cursor.execute(sql)

myresult = cursor.fetchall()

for x in myresult:
    print(x)

上述代码的输出将是:

(1,“Ramesh”,“CSE”,“149 Indirapuram”,“Pass”)(2,“Peter”,“ME”,“Noida”,“Fail”)(3,“Navin”,“CE”,“New Delhi”,“Pass”)

上面的输出表明两个表都是连接的。

以下是实际输出的快照:

python mysql join tables

Python MySQL -左连接

需要注意的是INNER JOIN(我们在上面的例子中讨论过)只在匹配时显示结果集中的行。

如果您想从左侧表中获取所有记录,即使没有匹配,也将使用Left Join

让我们看看下面给出的左连接示例:

import mysql.connector as mysql

db = mysql.connect(
    host = "localhost",
    user = "yourusername",
    passwd = "yourpassword",
    database = "studytonight"
)

cursor = db.cursor()

sql = "SELECT students.rollno, students.name,students.Branch,students.Address, results.status from students LEFT JOIN results ON students.rollno=results.rollno;"

cursor.execute(sql)

myresult = cursor.fetchall()

for x in myresult:
    print(x)

上述代码的输出如下。让我们看看:

(1,“Ramesh”,“CSE”,“149 Indirapuram”,“Pass”)(2,“Peter”,“ME”,“Noida”,“Fail”)(3,“Navin”,“CE”,“New Delhi”,“Pass”)(5,“suraj”,“ECE”,“Panipat”,None) (6,“Mukesh”,“CSE”,“Samalkha”,None)

在上面的输出中,5 号和 6 号辊的状态为“无”,因为它们的结果是结果表中没有提到的。但是由于我们已经应用了LEFT JOIN,所以即使没有匹配,查询也会选择左表中的所有行。

以下是实际输出的快照:

python mysql join tables

Python MySQL -右连接

如果你想从右侧表格中获取所有记录,即使没有匹配也会使用Right Join

让我们看看下面给出的Right Join的例子。下面给出的代码将从右侧表中获取所有行。它不会返回那些带有5 号和 6 号滚轮的行:

import mysql.connector as mysql

db = mysql.connect(
    host = "localhost",
    user = "yourusername",
    passwd = "yourpassword",
    database = "studytonight"
)

cursor = db.cursor()

sql = "SELECT students.rollno, students.name,students.Branch,students.Address, results.status from students RIGHT JOIN results ON students.rollno=results.rollno;"

cursor.execute(sql)

myresult = cursor.fetchall()

for x in myresult:
    print(x)

上述代码的输出如下:

(1,“Ramesh”,“CSE”,“149 Indirapuram”,“Pass”)(2,“Peter”,“ME”,“Noida”,“Fail”)(3,“Navin”,“CE”,“New Delhi”,“Pass”)

以下是实际输出的快照:

python mysql join tables

至此,我们已经介绍了 Python MySQL 的所有基础知识。如果您必须开发一个应用,其中您希望有一个多表的数据库,您希望在其中存储数据并从表中检索数据,那么我们希望这些教程对您有所帮助。