MySQL Join
اتصال (به انگلیسی: Join) دو یا چند جدول
میتوان ردیفهای دو یا چند را براساس ستونهای مرتبط بین آنها و با استفاده از عبارت JOIN با هم ترکیب کرد.[۱]
فرض کنید یک جدول “user” و یک جدول “products” دارید:
میتوان این دو جدول را با استفاده از فیلد fav
در users و فیلد id
در product با هم ترکیب کرد.
مثال
جدولهای users و products را ترکیب میکند تا نام محصول مورد علاقهٔ userها را ببیند:
1 import mysql.connector
2
3 mydb = mysql.connector.connect(
4 host="localhost",
5 user="yourusername",
6 passwd="yourpassword",
7 database="mydatabase"
8 )
9
10 mycursor = mydb.cursor()
11
12 sql = "SELECT \
13 users.name AS user, \
14 products.name AS favorite \
15 FROM users \
16 INNER JOIN products ON users.fav = products.id"
17
18 mycursor.execute(sql)
19
20 myresult = mycursor.fetchall()
21
22 for x in myresult:
23 print(x)
LEFT JOIN
در مثال بالا، Hannah و Michael از نتیجه حذف شدهاند، زیرا INNER JOIN فقط رکوردهایی را نشان میدهد که در آنها تطابق (به انگلیسی: Match) وجود دارد.
اگر میخواهید همهٔ userها را نمایش دهید، حتی اگر محصول مورد علاقه ای ندارند، از عبارت LEFT JOIN استفاده کنید:
مثال
همهٔ کاربران و محصول مورد علاقه آنها را انتخاب میکند:
1 sql = "SELECT \
2 users.name AS user, \
3 products.name AS favorite \
4 FROM users \
5 LEFT JOIN products ON users.fav = products.id"
RIGHT JOIN
اگر میخواهید همهٔ محصولها را انتخاب کنید، حتی اگر کاربری که به آنها مورد علاقهاش باشند وجود ندارد، از عبارت RIGHT JOIN کنید:
مثال
همهٔ محصولها، و user(ها) ی که محصولات مورد علاقه اش هستند را برمیگرداند:
1 sql = "SELECT \
2 users.name AS user, \
3 products.name AS favorite \
4 FROM users \
5 RIGHT JOIN products ON users.fav = products.id"
منابع آموزشی