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

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Opcje odpowiedzi:
A
SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
Prawidłowa
B
SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
C
SELECT nazwisko, Miasto FROM Osoby, Adresy;
D
SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: A (SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;)

Aby połączyć tabele, należy użyć klauzuli JOIN (lub WHERE w starszej składni) i przyrównać klucz obcy z jednej tabeli do klucza głównego drugiej tabeli. W schemacie widać, że w tabeli Osoby znajduje się klucz obcy Adresy_id (oznaczony FK), który odnosi się do id w tabeli Adresy.

Dlaczego pozostałe opcje są nieprawidłowe?

  • B: Błędnie łączy klucze główne obu tabel (Osoby.id = Adresy.id), co nie ma sensu logicznego.
  • C: To iloczyn kartezjański (każdy z każdym) – brak warunku złączenia.
  • D: Błąd składniowy SQL.

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.