Python-MySQL -Beitritt
Nehmen Sie an zwei oder mehr Tischen teil
Sie können Zeilen aus zwei oder mehr Tabellen basierend auf einer verwandten Spalte zwischen ihnen kombinieren, indem Sie eine JOIN-Anweisung verwenden.
Stellen Sie sich vor, Sie haben eine Tabelle "Benutzer" und eine Tabelle "Produkte":
Benutzer
{ 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:}
Produkte
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
Diese beiden Tabellen können kombiniert werden, indem das Benutzerfeld fav
und das Produktfeld
id
verwendet werden.
Beispiel
Schließen Sie sich Benutzern und Produkten an, um den Namen des Lieblingsprodukts des Benutzers zu sehen:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)
Hinweis: Sie können JOIN anstelle von INNER JOIN verwenden. Sie werden beide das gleiche Ergebnis liefern.
LINKS VERBINDEN
Im obigen Beispiel wurden Hannah und Michael aus dem Ergebnis ausgeschlossen, weil INNER JOIN nur die Datensätze anzeigt, bei denen es eine Übereinstimmung gibt.
Wenn Sie alle Benutzer anzeigen möchten, auch wenn sie kein Lieblingsprodukt haben, verwenden Sie die LEFT JOIN-Anweisung:
Beispiel
Wählen Sie alle Benutzer und ihr Lieblingsprodukt aus:
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
LEFT JOIN
products ON users.fav = products.id"
RECHTS VERBINDEN
Wenn Sie alle Produkte und die Benutzer, die sie als Favoriten haben, zurückgeben möchten, auch wenn kein Benutzer sie als Favoriten hat, verwenden Sie die RIGHT JOIN-Anweisung:
Beispiel
Wählen Sie alle Produkte und die Benutzer aus, die sie als Favoriten haben:
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
RIGHT JOIN
products ON users.fav = products.id"
Hinweis: Hannah und Michael, die kein Lieblingsprodukt haben, sind nicht im Ergebnis enthalten.