Rejoindre MySQL en Python
- Page précédente Limit MySQL
- Page suivante Introduction à MongoDB
Combiner deux ou plusieurs tables
Vous pouvez utiliser l'instruction JOIN pour combiner les lignes de deux ou plusieurs tables en fonction de leurs colonnes associées.
Supposons que vous ayez les tables "users" et "products" :
users
{ id: 1, name: 'John', fav: 154}, { id: 2, name: 'Peter', fav: 154}, { id: 3, name: 'Amy', fav: 155}, { id: 4, name: 'Hannah', fav:}, { id: 5, name: 'Michael', fav:}
products
{ id: 154, name: 'Chocolate Heaven' }, { id: 155, name: 'Tasty Lemons' }, { id: 156, name: 'Vanilla Dreams' }
Il est possible d'utiliser les champs de users fav
Champs et products id
Champs pour combiner ces deux tables.
Exemple
Combiner les utilisateurs et les produits, pour voir les produits préférés des utilisateurs :
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ JOIN INNER products ON users.fav = products.id" mycursor.execute(sql) myresult = mycursor.fetchall() for x in myresult: print(x)
Remarque :Vous pouvez utiliser JOIN au lieu de INNER JOIN. Vous obtiendrez le même résultat.
JOIN LEFT
Dans l'exemple précédent, Hannah et Michael sont exclus des résultats car INNER JOIN ne montre que les enregistrements correspondants.
Si vous souhaitez afficher tous les utilisateurs, même s'ils n'ont pas de produits préférés, utilisez l'expression LEFT JOIN :
Exemple
Sélectionnez tous les utilisateurs et leurs produits préférés :
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ JOIN LEFT products ON users.fav = products.id"
JOIN RIGHT
Si vous souhaitez retourner tous les produits ainsi que les utilisateurs qui les aiment, même s'il n'y a pas d'utilisateur qui aime ces produits, utilisez l'expression RIGHT JOIN :
Exemple
Sélectionnez tous les produits ainsi que les utilisateurs qui les aiment :
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ JOIN RIGHT products ON users.fav = products.id"
Remarque :Hannah et Michael, qui ne sont intéressés par aucun produit, ne sont pas inclus dans les résultats.
- Page précédente Limit MySQL
- Page suivante Introduction à MongoDB