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 - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

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

نظرات

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

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