Python MySQL Join
- Halaman Sebelumnya MySQL Limit
- Halaman Berikutnya Masuk ke MongoDB
组合两张或更多表
您可以使用 JOIN 语句,根据它们之间的相关列组合两个或多个表中的行。
假设您有 "users" 表和 "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' }
可以使用 users 的 fav
字段和 products 的 id
字段来组合这两个表。
Contoh
组合用户和产品,查看用户最喜欢的产品名称:
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 \ Dari users \ INNER JOIN products ON users.fav = products.id" mycursor.execute(sql) myresult = mycursor.fetchall() for x in myresult: print(x)
Keterangan:Anda dapat menggunakan JOIN daripada INNER JOIN. Kedua-duanya akan memberikan hasil yang sama.
LEFT JOIN
Dalam contoh di atas, Hannah dan Michael di eksklusi dari hasil, karena INNER JOIN hanya menampilkan catatan yang cocok.
Jika Anda ingin menampilkan semua pengguna, bahkan jika mereka tidak mempunyai produk yang disukai, gunakan pernyataan LEFT JOIN:
Contoh
Pilih semua pengguna serta produk yang disukainya:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ Dari users \ LEFT JOIN products ON users.fav = products.id"
RIGHT JOIN
Jika Anda ingin mengembalikan semua produk serta pengguna yang menyukainya, bahkan jika tidak ada pengguna yang menyukai produk itu, gunakan pernyataan RIGHT JOIN:
Contoh
Pilih semua produk serta pengguna yang menyukainya:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ Dari users \ RIGHT JOIN products ON users.fav = products.id"
Keterangan:Hannah dan Michael yang tidak memerlukan produk apapun tidak termasuk dalam hasil.
- Halaman Sebelumnya MySQL Limit
- Halaman Berikutnya Masuk ke MongoDB