Python MySQL Gabung
Gabung Dua atau Lebih Tabel
Anda dapat menggabungkan baris dari dua tabel atau lebih, berdasarkan kolom terkait di antara keduanya, dengan menggunakan pernyataan GABUNG.
Pertimbangkan Anda memiliki tabel "pengguna" dan tabel "produk":
pengguna
{ 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:}
produk
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
Kedua tabel ini dapat digabungkan dengan menggunakan bidang pengguna fav
dan bidang produk
id
.
Contoh
Bergabunglah dengan pengguna dan produk untuk melihat nama produk favorit pengguna:
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)
Catatan: Anda dapat menggunakan JOIN sebagai ganti INNER JOIN. Keduanya akan memberi Anda hasil yang sama.
KIRI GABUNG
Dalam contoh di atas, Hannah, dan Michael dikeluarkan dari hasil, karena INNER JOIN hanya menampilkan catatan di mana ada kecocokan.
Jika Anda ingin menampilkan semua pengguna, bahkan jika mereka tidak memiliki produk favorit, gunakan pernyataan LEFT JOIN:
Contoh
Pilih semua pengguna dan produk favorit mereka:
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
LEFT JOIN
products ON users.fav = products.id"
GABUNG BENAR
Jika Anda ingin mengembalikan semua produk, dan pengguna yang menjadikannya sebagai favorit, meskipun tidak ada pengguna yang menjadikannya sebagai favorit, gunakan pernyataan RIGHT JOIN:
Contoh
Pilih semua produk, dan pengguna yang menjadikannya sebagai favorit mereka:
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
RIGHT JOIN
products ON users.fav = products.id"
Catatan: Hannah dan Michael, yang tidak memiliki produk favorit, tidak termasuk dalam hasil.