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

pythonserver side programmingprogramming

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

在这里,我们将讨论两个表的 LEFT 连接。可以使用 LEFT 连接来连接表。在 LEFT JOIN 中,第一个表或左表中的所有记录始终包含在结果中。从右表中,匹配的记录将连接到左表的记录。如果在左表中找不到与某行匹配的记录,则不会与该记录连接。

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

语法

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

假设有两个表,“Students” 和 “Department”,如下所示 −

Students

+----------+--------------+-----------+
|    id    | Student_name | Dept_id   |
+----------+--------------+-----------+
|    1     |    Rahul     |    120    |
|    2     |    Rohit     |    121    |
|    3     |    Kirat     |    125    |
|    4     |    Inder     |    123    |
+----------+--------------+-----------+

Department

+----------+-----------------+
| Dept_id  | Department_name |
+----------+-----------------+
|    120   |    CSE          |
|    121   |    Mathematics  |
|    122   |    Physics      |
+----------+-----------------+

我们将根据两个表中共有的 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)

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


相关文章