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行没有匹配的记录。
极客教程