Les jointures Python / MySQL
Les jointures sont utilisés pour récupérer les données de plusieurs tables. Une jointure MySQL est effectuée chaque fois que deux tables ou plus sont jointes dans une instruction SQL.
[wx_adsense]
Il existe différents types de jointures MySQL:
- MySQL INNER JOIN (ou parfois appelé JOIN; une simple jointure)
- MySQL LEFT OUTER JOIN (ou parfois appelé LEFT JOIN)
- MySQL RIGHT OUTER JOIN (ou parfois appelé RIGHT JOIN)
Considérez que vous avez une table « Employee » et une table « Holidays »:
Table : Holidays
+------+--------+------------+--------+---------------+ | id | empId | date | days | reason | +------+--------+------------+--------+---------------+ | 1 | 1 | 01/07/2020 | 10 | Annual Leave | | 2 | 2 | 25/09/2020 | 5 | Hospital | | 3 | 3 | 30/08/2020 | 11 | Have a baby | +------+--------+------------+--------+---------------+
Table : Employee
+------+--------+------------+ | id | name | address | +------+--------+------------+ | 1 | Alex | 01/07/2020 | | 2 | Thomas | 25/09/2020 | | 3 | Bob | 30/08/2020 | +------+--------+------------+
Ces deux tables peuvent être jointes en utilisant le champ empId de la table : holidays et le champ id de la table : Employee.
[wx_adsense]
Exemple:
Rejoignez la table : Employee et la table : holidays pour voir la raison de départ pour chaque employé:
# -*- coding: utf-8 -*-
import mysql.connector
#connexion au base de données
db = mysql.connector.connect(
host = "localhost",
user = "root",
password = "",
database = "my_db"
)
#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()
sql = "SELECT employee.name, holidays.reason \
FROM employee \
INNER JOIN holidays ON employee.id = holidays.empId"
#exécuter le curseur avec la méthode execute() et transmis la requête SQL
cur.execute(sql)
#récupèrer toutes les lignes de la dernière instruction exécutée.
res = cur.fetchall()
for line in res:
print(line)
Sortie:
('Alex', 'Annual Leave')
('Thomas', 'Hospital')
('Bob', 'Have a baby')
[wx_amazon]
