Join
«JOIN در MySQL» یعنی وصل کردن جدول ها. «ستون مرتبط (Related Column)» ستونی است که رابطه می سازد. با JOIN می توانی داده کامل تر ببینی؛ مثل ردیف های کاربران همراه محصول محبوب شان.
INNER JOIN؛ فقط ردیف های جفت شده
INNER JOIN فقط ردیف هایی را می آورد که در هر دو جدول، تطابق دارند. بنابراین ردیف های بی جفت، حذف می شوند.
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؛ همه ردیف های جدول چپ
با 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"
گام های عملی سریع
- ستون های مرتبط را پیدا کن.
- نوع JOIN مناسب را انتخاب کن.
- SELECT و نام مستعار بنویس.
- JOIN و شرط ON را اضافه کن.
لینک های داخلی پیشنهادی
برای محدودسازی خروجی کنار JOIN در MySQL از Limit استفاده کن. همچنین برای ترتیب پایدار، صفحه مرتب سازی (Order By) را ببین.
جمع بندی سریع
- INNER فقط جفت ها را نشان می دهد.
- LEFT همه جدول چپ را نگه می دارد.
- RIGHT همه جدول راست را نگه می دارد.
- همیشه شرط ON دقیق بنویس.
- برای صفحه بندی از LIMIT کمک بگیر.