Python – اتصال جداول در (MySQL Join)

پایتون MySQL جوین (Join)

جوین دو یا چند جدول

شما می‌توانید ردیف‌های دو یا چند جدول را با استفاده از یک ستون مرتبط بین آن‌ها با استفاده از دستور 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: NULL},
{ id: 5, name: 'Michael', fav: NULL}

جدول products

{ id: 154, name: 'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{ id: 156, name: 'Vanilla Dreams' }

این دو جدول می‌توانند با استفاده از فیلد fav جدول کاربران و فیلد id جدول محصولات ترکیب شوند.

مثال

برای جوین کردن جدول‌های کاربران و محصولات و دیدن نام محصول مورد علاقه کاربران:

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)

توجه: شما می‌توانید از JOIN به جای INNER JOIN استفاده کنید. هر دو نتیجه یکسانی خواهند داد.

LEFT JOIN

در مثال بالا، “Hannah” و “Michael” از نتیجه حذف شده‌اند، زیرا INNER 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"

توجه: “Hannah” و “Michael” که محصول مورد علاقه‌ای ندارند، در نتیجه گنجانده نمی‌شوند.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.