如何在 Python 中使用 MySQL 对两个表执行内部联接?

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

在这里,我们将讨论两个表上的内连接。

JOIN 和 INNER JOIN 的工作方式相同。INNER JOIN 将一个表中的每一行与另一个表中的每一行进行匹配,并允许组合来自两个表中的行,这些行要么具有某些公共列,要么满足某些指定的条件。

在两个表之间应用联接时,我们需要指定表联接的条件。

语法

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

让有两个表,“学生”和“部门”如下 -

学生

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

+----------+-----------------+
| 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 INNER 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’, ‘Physics’)

请注意,结果中不包含第 4 行,因为 Department 表中的 Students 表的第 4 行没有数学计算记录。

猜你喜欢