Python 如何使用Python的MySQL执行两个表的左连接?

Python 如何使用Python的MySQL执行两个表的左连接?

我们可以根据它们之间的公共列或基于某些指定条件在SQL中连接两个表。有不同类型的JOIN可用于连接两个SQL表。

在这里,我们将讨论两个表上的LEFT连接。可以使用LEFT连接加入表格。在LEFT JOIN中,始终将包括第一个表或左表的所有记录。从右表,将匹配的记录连接到左表的记录。如果在左表中找不到匹配的记录,则使用“None”连接该记录。

表格将基于某些条件连接。但是,无论条件如何,左表的所有记录都将始终包含在结果中。

阅读更多:Python 教程

语法

SELECT column1, column2...
FROM table_1
LEFT JOIN table_2 ON condition;

假设有两个名称为“Students”和“Department”的表,如下所示 –

学生

+----------+--------------+-----------+
|    ID   |      姓名     | 部门编号   |
+----------+--------------+-----------+
|    1     |    拉胡尔     |    120    |
|    2     |    Rohit      |    121    |
|    3     |    Kirat      |    125    |
|    4     |    印德尔     |    123    |
+----------+--------------+-----------+

部门

+----------+-----------------+
| 部门编号 | 部门名称       |
+----------+-----------------+
|    120   |    计算机科学  |
|    121   |    数学        |
|    122   |    物理        |
+----------+-----------------+

我们将基于两个表格中共同的dept_id执行左联接。

使用Python的MySQL执行左连接表的步骤

  • 导入MySQL连接器

  • 使用connect()函数与连接器建立连接

  • 使用cursor()方法创建游标对象

  • 使用适当的mysql语句创建查询

  • 使用execute()方法执行SQL查询

  • 关闭连接

示例

import mysql.connector
db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")

cursor=db.cursor()
query="SELECT Students.Id,Students.Student_name,Department.Department_name
FROM Students LEFT JOIN Department ON Students.Dept_Id=Department.Dept_Id"
cursor.execute(query)
rows=cursor.fetchall()
for x in rows:
   print(x)

db.close()

输出

(1, ‘Rahul’, ‘CSE’)
(2, ‘Rohit’, ‘Mathematics’)
(3, ‘Kirat’, None)
(4, ‘Inder’, None)

请注意,结果中仍包含左表的所有记录,即使最后2行没有匹配的记录。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程