Python MySQL Magkakasama

Kombina ang dalawang o higit pang talahanayan

Maaaring gamitin ang JOIN sentence upang kombinahin ang mga linya ng dalawang o higit pang talahanayan.

Hypothetical na mayroon kayo sa "users" talahanayan at "products" talahanayan:

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' }

Maaaring gamitin ang users ng fav mga laro at products ng id mga laro upang kombinahin ang dalawang talahanayan.

Halimbawa

Kombina ang gumagamit at ang produkto, tingnan ang pinakamaisip na pangalan ng produkto ng gumagamit:

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)

Run Halimbawa

Komentaryo:Maaari mong gamitin ang JOIN sa halip ng INNER JOIN. Maaaring makakuha ka ng parehong resulta.

LEFT JOIN

Sa nakaraang halimbawa, Hannah at Michael ay hindi kasama sa mga resulta dahil ang INNER JOIN ay nagpapakita lamang ang mga katugmang record.

Kung gusto mong ipakita ang lahat ng user, kahit walang pinagustuhang produkto, gamitin ang LEFT JOIN statement:

Halimbawa

Pilihin ang lahat ng user at ang kanilang mga pinagustuhang produkto:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

Run Halimbawa

RIGHT JOIN

Kung gusto mong ibalik ang lahat ng produkto at ang mga gumagustuhin nila ng mga user, kahit walang gumagustuhin ang mga produkto, gamitin ang RIGHT JOIN statement:

Halimbawa

Pilihin ang lahat ng produkto at ang mga gumagustuhin nila ng mga user:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

Run Halimbawa

Komentaryo:Hannah at Michael, na walang interes sa anumang produkto, ay hindi kasama sa mga resulta.