Junior
რა განსხვავებაა INNER JOIN და OUTER JOIN-ს შორის?
sobes.tech AI
პასუხი AI-სგან
Inner join მხოლოდ იმ სვეტებს აბრუნებს, რომლებიც შესაბამისობაში მოდიან ორივე ცხრილში შეკავშირების პირობის შესაბამისად. თუ ერთ ცხრილში შესაბამისი ჩანაწერი არ არის, ეს სვეტი შედეგში არ მოხვდება.
Outer join აბრუნებს ყველა სვეტს ერთ ცხრილში და შესაბამისს მეორეში, ხოლო თუ შესაბამისობა არ არის, უქმნელ მონაცემებს NULL-ით ავსებს. არსებობს სამი ტიპის outer join:
- Left outer join — ყველა სვეტი მარცხენა ცხრილიდან + შესაბამისი მარჯვენიდან;
- Right outer join — ყველა სვეტი მარჯვენა ცხრილიდან + შესაბამისი მარცხნიდან;
- Full outer join — ორივე ცხრილის ყველა სვეტი, სადაც შესაბამისობა არ არის, NULL.
მაგალითი:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- მხოლოდ იმ თანამშრომლებს დააბრუნებს, რომლებსაც განყოფილება აქვთ
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- ყველა თანამშრომელს დააბრუნებს, მათ შორის, რომლებსაც განყოფილება არ აქვთ (columns departments-ში NULL იქნება)