Python MySQL Join

İki veya daha fazla tabloyu birleştirme

İki veya daha fazla tabloyu birleştirmek için JOIN ifadesini kullanabilirsiniz, ilgili sütunlar aracılığıyla iki veya daha fazla tablodaki satırları birleştirin.

Siz "users" ve "products" tablolarına sahipseniz:

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 tablosunun fav alanı ve products tablosunun id Bu iki tabloyu birleştirmek için alan kullanın.

Örnek

Kullanıcıların en sevdiği ürün adlarını görmek için kullanıcı ve ürünleri birleştirin:

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)

Örnek Çalıştırma

Açıklama:JOIN yerine INNER JOIN kullanabilirsiniz. Her ikisi de aynı sonucu verecektir.

LEFT JOIN

Örnekteki durumda, Hannah ve Michael sonuçlar dışında yer alıyorlar, çünkü INNER JOIN sadece eşleşen kayıtları gösterir.

Tüm kullanıcıları göstermek istiyorsanız, kullanıcıların sevdikleri ürünleri olmasa bile, LEFT JOIN ifadesini kullanın:

Örnek

Tüm kullanıcıları ve sevdikleri ürünleri seçin:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

Örnek Çalıştırma

RIGHT JOIN

Tüm ürünleri ve bu ürünleri sevip sevmeyen kullanıcıları döndürmek istiyorsanız, kullanıcıların bu ürünleri sevmemesine rağmen, RIGHT JOIN ifadesini kullanın:

Örnek

Tüm ürünleri ve bu ürünleri sevip sevmeyen kullanıcıları seçin:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

Örnek Çalıştırma

Açıklama:Ürünlere ilgi duymayan Hannah ve Michael sonuçlar arasında yer almaz.