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” که محصول مورد علاقه‌ای ندارند، در نتیجه گنجانده نمی‌شوند.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

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

نظرات

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

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