Python MySQL Join

Kombinieren Sie zwei oder mehr Tabellen

Sie können JOIN-Anweisungen verwenden, um Zeilen aus zwei oder mehreren Tabellen basierend auf den verknüpften Spalten zu kombinieren.

Angenommen, Sie haben die Tabellen "users" und "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' }

Sie können das Feld von users verwenden fav Feld und von products id Feld, um diese beiden Tabellen zu kombinieren.

Beispiel

Kombinieren Sie Benutzer und Produkte, um zu sehen, welche Produkte Benutzer am liebsten mögen:

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 \

  INNER JOIN products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Führen Sie ein Beispiel aus

Anmerkung:Sie können JOIN anstelle von INNER JOIN verwenden. Sie erhalten dasselbe Ergebnis.

LEFT JOIN

In diesem Beispiel werden Hannah und Michael aus den Ergebnissen ausgeschlossen, weil INNER JOIN nur übereinstimmende Aufzeichnungen anzeigt.

Wenn Sie alle Benutzer anzeigen möchten, auch wenn sie keine geliebten Produkte haben, verwenden Sie den LEFT JOIN-Befehl:

Beispiel

Wählen Sie alle Benutzer und ihre geliebten Produkte aus:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  LEFT JOIN products ON users.fav = products.id"

Führen Sie ein Beispiel aus

RIGHT JOIN

Wenn Sie alle Produkte und die Benutzer, die sie mögen, auch wenn keine Benutzer diese Produkte mögen, zurückgeben möchten, verwenden Sie den RIGHT JOIN-Befehl:

Beispiel

Wählen Sie alle Produkte und die Benutzer aus, die sie mögen:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  RIGHT JOIN products ON users.fav = products.id"

Führen Sie ein Beispiel aus

Anmerkung:Hannah und Michael, die an keinem Produkt interessiert sind, werden in den Ergebnissen nicht aufgeführt.