تفاوت INNER JOIN , LEFT JOIN , RIGHT JOIN در چی هست؟ من متوجه کارایی و تفاوت اینها نمیشوم.
ممنون
تفاوت INNER JOIN , LEFT JOIN , RIGHT JOIN در چی هست؟ من متوجه کارایی و تفاوت اینها نمیشوم.
ممنون
فرض کن یه Table داری واسه فاکتور به اسم tFactor که سریال و تاریخ فاکتور را توش ذخیره می کنی و یه Table دیگه داری واسه ردیف های فاکتور به اسم tItems که سریال، شماره ردیف، توضیح و مبلغ را توش ذخیره می کنی.
حالا Inner Join می تونه اطلاعات هر ردیف + اطلاعات فاکتوری که این ردیف را شامل می شه را بر گردونه به شرطی که رکورد مشترک توی هر دوتا تیبل باشه :
SELECT TITEMS.*, TFACTOR.*
FROM TITEMS
INNER JOIN TFACTOR ON
TFACTOR.SERIAL = TITEMS.SERIAL
بعدی: Left Join
مثل Inner Join عمل می کنه با این تفاوت که بدون توجه به وجود رکورد مشترک در هر دو تیبل، تمام رکوردهای مشترک جدول سمت چپ ( رنگ قرمز ) را بر می گردونه و اگر رکورد متناظری در جدول سمت راست وجود نداشته باشه، برای هر ستون مقدار Null را بر می گردونه :
SELECT TITEMS.*, TFACTOR.*
FROM TITEMS
LEFT JOIN TFACTOR ON
TFACTOR.SERIAL = TITEMS.SERIAL
بعدی : Right Join
دقیقا" برعکس Left Join عمل می کنه
توضیحات خوب بود . ساده اش هم این میشه که
innerبه ازای هر رکورد در جدول اول حداقل باید یک رکورد در جدول دوم وجود داشته باشه
Left همه رکورد های جدول سمت چپ و اگر بود هم رکورد معادل از جدول سمت راست
Right همه رکورد های جدول سمت راست و اگر بود هم رکورد معادل از جدول سمت چپ
پس میشه گفت که query زیر یک Inner Joun هست؟
SELECT TITEMS.*, TFACTOR.*
FROM TITEMS, TFACTOR
WHERE TFACTOR.SERIAL = TITEMS.SERIAL
در مورد LEFT و Right
خوب این چه کاری هست؟ چه تفاوتی با هم میکنند ( در کارایی دارند )؟
و اصلا وقتی میتونیم از Inner Join استفاده کنیم چه نیازی به Left Ritgh پیدا میکنیم؟
ممنون از وقتی که گذاشتید
با سلام
دقت کنید.
Select *
From Tbl_Test1 T1
Left Outer Join Tbl_Test2 T2
ON T1.No = T2.No
جدول Tbl_Test1
No Name
1 ali
2 mamad
جدول Tbl_Test2
1 ali
3 k
اگر در دستور بالا Inner Join استفاده کنید کلیه رکوردهایی را نمایش می دهد که در دو جدول وجود داشت باشد.
ali 1
ولی اگر left LOuter Join : کلیه رکوردهایی که در جدول Tbl_Test1 وجود دارد.
ali 1
mamd 2
و اگر Right Outer Jolin: کلیه رکوردهایی که در جدول Tbl_Test2 وجود دارد.
ali 1
k 3
موفق باشید
و اگر جدول سوم و یا چهارمی وجود داشته باشه چی؟
می توانید مجموعه Join شده را یک واحد فرض و مجددا join را انجام دهید
سلام
آیا میشه بیش از 2 جدول رو با استفاده ازINNER JOIN به هم متصل کرد.
اگه میشه لطف کنید دستورش رو بزارین(مثلا برای 3 جدول)
با تشکر