如何在Python中使用MySQL对两个表执行右连接?
我们可以根据两个表之间的公共列或某些指定条件在SQL中连接两个表。有不同类型的JOIN可用于连接两个SQL表。
这里,我们将讨论两个表的RIGHT JOIN。在RIGHT JOIN中,第二个表或右表中的所有记录始终包含在结果中。来自左表的匹配记录将连接到右表的记录。如果在右表中的一行中找不到匹配记录,则将None与该记录连接。
表根据某些条件连接。但是,无论条件如何,右表的所有记录都将始终包含在结果中。
语法
SELECT column1, column2... FROM table_1 RIGHT JOIN table_2 ON condition;
假设有两个表,“学生”和“系”,如下所示:
学生表
+----------+--------------+-----------+ | id | Student_name | Dept_id | +----------+--------------+-----------+ | 1 | Rahul | 120 | | 2 | Rohit | 121 | | 3 | Kirat | 121 | | 4 | Inder | 123 | +----------+--------------+-----------+
系表
+----------+-----------------+ | Dept_id | Department_name | +----------+-----------------+ | 120 | CSE | | 121 | Mathematics | | 122 | Physics | +----------+-----------------+
我们将根据两个表中都存在的dept_id对上述表执行右连接。
在Python中使用MySQL对两个表执行右连接的步骤
导入MySQL连接器
使用connect()方法建立与连接器的连接
使用cursor()方法创建游标对象
使用适当的MySQL语句创建查询
使用execute()方法执行SQL查询
关闭连接
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
示例
import mysql.connector db=mysql.connector.connect(host="your host", user="your username", password="yourpassword",database="database_name") cursor=db.cursor() query="SELECT Students.Id,Students.Student_name,Department.Department_name FROM Students RIGHT 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’ , ‘Mathematics’) (None, ‘Physics’)
注意,即使最后一行没有匹配的记录,右表中的所有记录都包含在结果中。
广告