Left Join در SQL Server
LEFT JOIN نوعی inner join یا اتصال داخلی است که در آن تمام رکوردها را از جدول سمت چپ و رکوردهای مشابه را از جدول سمت راست برمی گرداند. در اینجا، جدول سمت چپ جدولی است که در سمت چپ یا قبل از عبارت "LEFT JOIN" در کویری آمده است و جدول سمت راست به جدولی اشاره دارد که در سمت راست یا بعد از عبارت "LEFT JOIN" آمده است. برای تمام رکوردهای غیر منطبق از جدول سمت راست، NULL را برمی گرداند.
در برخی پایگاه های داده به آن LEFT OUTER JOIN می گویند.
سینتکس آن به صورت زیر است.
در سینتکس بالا، table1 جدول سمت چپ و table2 جدول سمت راست است.
برای تفهیم بیشتر، از جداول Employee و Department زیر در همه مثال ها استفاده خواهیم کرد.
جدول Employee :
جدول Department :
کویری left join زیر را در نظر بگیرید.
کویری LEFT JOIN بالا جدول Employee و جدول Department را به هم پیوند می دهد که در آن Employee جدول سمت چپ و Department جدول سمت راست است. این تمام رکوردها را از جدول Employee و رکوردهای مطابق را از جدول Department که در آن emp.DeptId = dept.DepId بازیابی می کند. کویری بالا نتیجه زیر را نمایش می دهد.
توجه داشته باشید که فقط رکوردهایی را از جدول Department نمایش می دهد که در آن dept.DeptId با emp.DepId مطابقت دارد.
حالا بیایید جدول سمت چپ را تغییر دهیم و ببینیم نتیجه چگونه تغییر خواهد کرد.
در بالا، جدول سمت چپ Department و جدول سمت راست Employee است. این کویری نتیجه زیر را نمایش می دهد.
همانطور که می بینید، این اتصال، تمام رکوردها را از جدول Department و فقط رکوردهای منطبق را از جدول Employee که در آن dept.DeptId = emp.DepId است واکشی می کند. این شامل 3، رکورد 'Sales' از جدول Department و NULL برای ستون های Employee است زیرا هیچ رکورد منطبقی در جدول Employee که DeptId آن 3 باشد وجود ندارد.