Python جسوس جوائن

ترکیب دو یا چند جدول

شما می‌توانید از عبارت 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 میدان و محصولات 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

درج کی گئی مثال میں، هانا اور میکسیل کو نتائج میں شامل نہیں کیا گیا ہے، یہی وجہ آٹھرنر جوائن کو صرف مطابقت کی ریکارڈز دکھاتا ہے.

اگر آپ تمام استعمال کنندگان کو درکار ہیں، جس میں کوئی بھی علاقوں نہیں موجود ہو، تو LEFT JOIN جملہ استعمال کریں:

مثال

تمام استعمال کنندگان اور ان کا علاقوں کو انتخاب کریں:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

مثال چلاؤ

RIGHT JOIN

اگر آپ تمام پروڈکٹس اور ان کا علاقوں کو درکار ہیں، جس میں کوئی بھی علاقوں نہیں موجود ہو، تو RIGHT JOIN جملہ استعمال کریں:

مثال

تمام پروڈکٹس اور ان کا علاقوں کو انتخاب کریں:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

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

مثال چلاؤ

توضیح:کسی پروڈکٹ کو ناخوشگوار پائی نے والی هانا اور میکسیل کو نتائج میں شامل نہیں کیا گیا ہے.