Python MySQL ਜੋਈਨ

ਦੋ ਜਾਂ ਵੱਧ ਤਾਲਿਕਾਵਾਂ ਨੂੰ ਮਿਲਾਓ

ਤੁਸੀਂ 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' }

ਉਪਭੋਗਤਾ ਦੇ fav ਫੀਲਡ ਅਤੇ products ਦਾ id ਫੀਲਡ ਨਾਲ ਇਨ੍ਹਾਂ ਦੋਹਾਂ ਤਾਲਿਕਾਵਾਂ ਨੂੰ ਮਿਲਾਓ。

ਇੰਸਟੈਂਸ

ਉਪਭੋਗਤਾ ਅਤੇ ਉਤਪਾਦ ਨੂੰ ਮਿਲਾ ਕੇ ਉਪਭੋਗਤਾ ਦਾ ਮਿਤਰਤਾ ਰੱਖਣ ਵਾਲਾ ਉਤਪਾਦ ਦਾ ਨਾਮ ਦੇਖੋ:

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)

ਇੰਸਟੈਂਸ ਚਲਾਓ

ਟਿੱਪਣੀਆਂ:ਤੁਸੀਂ JOIN ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ, ਨਾਲ ਹੀ INNER JOIN ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ, ਤੁਹਾਨੂੰ ਇੱਕ ਜਿਹਾ ਨਤੀਜਾ ਮਿਲੇਗਾ。

LEFT JOIN

ਉਦਾਹਰਣ ਵਿੱਚ, ਹੈਨਾ ਅਤੇ ਮਾਇਕਲ ਨੂੰ ਨਹੀਂ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ INNER JOIN ਸਿਰਫ ਮੇਲ ਵਾਲੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਦਿਸਾਉਂਦਾ ਹੈ。

ਜੇਕਰ ਤੁਸੀਂ ਸਭ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਦਿਸਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਭਾਵੇਂ ਕਿ ਕੋਈ ਵੀ ਉਪਭੋਗਤਾ ਉਨ੍ਹਾਂ ਦੇ ਪਸੰਦੀਦਾ ਉਦਾਹਰਣ ਨਹੀਂ ਹੋਵੇ, ਤਾਂ ਲੈਫਟ ਜੋਈਨ ਸਟੇਟਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰੋ:

ਇੰਸਟੈਂਸ

ਸਭ ਉਪਭੋਗਤਾਵਾਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਪਸੰਦੀਦਾ ਉਦਾਹਰਣਾਂ ਨੂੰ ਚੋਣ ਕਰੋ:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

ਇੰਸਟੈਂਸ ਚਲਾਓ

RIGHT JOIN

ਅਗਰ ਤੁਸੀਂ ਸਭ ਉਦਾਹਰਣਾਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਪਸੰਦੀਦਾ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਦਿਸਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਭਾਵੇਂ ਕਿ ਕੋਈ ਵੀ ਉਪਭੋਗਤਾ ਉਨ੍ਹਾਂ ਦੇ ਪਸੰਦੀਦਾ ਨਹੀਂ ਹੋਵੇ, ਤਾਂ ਰਾਈਟ ਜੋਈਨ ਸਟੇਟਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰੋ:

ਇੰਸਟੈਂਸ

ਸਭ ਉਦਾਹਰਣਾਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਪਸੰਦੀਦਾ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਚੋਣ ਕਰੋ:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

ਇੰਸਟੈਂਸ ਚਲਾਓ

ਟਿੱਪਣੀਆਂ:ਅਜਿਹੇ ਉਦਾਹਰਣ ਵਿੱਚ ਹੈਨਾ ਅਤੇ ਮਾਇਕਲ ਨੂੰ ਨਹੀਂ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ INNER JOIN ਸਿਰਫ ਮੇਲ ਵਾਲੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਦਿਸਾਉਂਦਾ ਹੈ。