如何在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查詢

  • 關閉連線

示例

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’)

注意,即使最後一行沒有匹配的記錄,右表中的所有記錄都包含在結果中。

更新於:2021年6月10日

196次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.