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” که محصول مورد علاقهای ندارند، در نتیجه گنجانده نمیشوند.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام