Python MySQL Join
- Forrige side MySQL Begræns
- Næste side MongoDB Introduktion
Kombiner to eller flere tabeller
Du kan bruge JOIN-sætningen til at kombinere rækker fra to eller flere tabeller baseret på de relaterede kolonner mellem dem.
Antag, at du har "users"-tabellen og "products"-tabellen:
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' }
Man kan bruge users' fav
felt og products' id
felt til at kombinere to tabeller.
Eksempel
Kombiner brugere og produkter, se hvilke produkter brugerne bedst kan lide:
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)
Kommentar:Du kan bruge JOIN i stedet for INNER JOIN. Du får samme resultat.
LEFT JOIN
I det foregående eksempel er Hannah og Michael udeladt fra resultaterne, fordi INNER JOIN kun viser matchende poster.
Hvis du ønsker at vise alle brugere, selvom de ikke har nogen foretrukne produkter, skal du bruge LEFT JOIN-sætningen:
Eksempel
Vælg alle brugere samt deres foretrukne produkter:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ LEFT JOIN products ON users.fav = products.id"
RIGHT JOIN
Hvis du vil returnere alle produkter samt brugerne, der kan lide dem, selvom ingen brugere kan lide disse produkter, skal du bruge RIGHT JOIN-sætningen:
Eksempel
Vælg alle produkter samt brugerne, der kan lide dem:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ RIGHT JOIN products ON users.fav = products.id"
Kommentar:Hannah og Michael, der ikke er interesseret i nogen produkter, er ikke inkluderet i resultaterne.
- Forrige side MySQL Begræns
- Næste side MongoDB Introduktion