Przejdź do treści głównej
INF.03Pytanie #1527 z 1558sql-zlaczenia-i-agregacja

Projektujesz zapytanie SQL łączące tabele Klienci oraz Zamowienia. Chcesz wyświetlić pełną listę klientów, w tym również tych, którzy nie złożyli jeszcze żadnego zamówienia (w ich przypadku pola dotyczące zamówień mają zawierać wartości NULL). Którego typu złączenia należy użyć, przyjmując, że tabela Klienci znajduje się po lewej stronie operatora złączenia?

Opcje odpowiedzi:
A
INNER JOIN
B
LEFT JOIN
Prawidłowa
C
RIGHT JOIN
D
CROSS JOIN
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: B (LEFT JOIN)

Ponieważ złączenie LEFT JOIN (lub LEFT OUTER JOIN) pobiera wszystkie rekordy z lewej tabeli (w tym przypadku Klienci) i dopasowuje do nich rekordy z prawej tabeli (Zamowienia). Jeśli dopasowania brak, wstawiane są wartości NULL.

Opcja A jest niepoprawna, ponieważ INNER JOIN (złączenie wewnętrzne) zwróciłoby wyłącznie tych klientów, którzy posiadają co najmniej jedno zamówienie. Opcja C zwróciłaby wszystkie zamówienia i tylko dopasowanych klientów, co byłoby odwrotnością pożądanego rezultatu. Opcja D jest niepoprawna, ponieważ CROSS JOIN tworzy iloczyn kartezjański łączący każdy wiersz pierwszej tabeli z każdym wierszem drugiej tabeli.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Zapytanie INNER JOIN zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.
  • C: Zapytanie RIGHT JOIN zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.
  • D: Zapytanie CROSS JOIN zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Sql zlaczenia i agregacja”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 43 pytań z tego działu.