KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 20.
Baza danych ma dwie tabele połączone relacją 1..n. Którą klauzulą SQL należy połączyć tabele, aby wybrać korespondujące ze sobą wartości z pól obu tabel?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby pobrać odpowiadające sobie wiersze z dwóch tabel powiązanych relacją 1..n, stosuje się złączenie tabel w zapytaniu SELECT. Służy do tego konstrukcja JOIN, która pozwala zestawić rekordy na podstawie warunku łączenia (np. klucz obcy = klucz główny). Pozostałe propozycje nie są standardowymi elementami SQL.

Pełne wyjaśnienie:

W relacyjnych bazach danych dane często są rozdzielone na wiele tabel, a powiązania między nimi opisuje się relacjami, np. 1..n (jeden rekord w tabeli nadrzędnej odpowiada wielu rekordom w tabeli podrzędnej). Aby w jednym wyniku zapytania otrzymać korespondujące informacje z obu tabel (np. dane użytkownika oraz jego zamówienia), w SQL wykonuje się złączenie tabel.

Do złączeń służy konstrukcja JOIN używana w zapytaniach SELECT (najczęściej w obrębie części FROM). Dzięki JOIN można wskazać, które rekordy mają zostać dopasowane, typowo przez porównanie klucza głównego tabeli nadrzędnej z kluczem obcym w tabeli podrzędnej. W praktyce zapis wygląda jak "tabela1 JOIN tabela2 ON …", gdzie w ON podaje się warunek dopasowania.

Odpowiedzi z "LINK" są mylące: INNER LINK i OUTER LINK nie są standardowymi słowami kluczowymi SQL. W SQL spotyka się co prawda pojęcia zbliżone znaczeniowo do "inner/outer", ale występują one jako typy złączeń (np. INNER JOIN, różne warianty OUTER JOIN), a nie jako "LINK".

Odpowiedź AND również nie spełnia celu pytania: AND jest operatorem logicznym używanym do łączenia warunków (np. w WHERE lub w ON), ale nie jest mechanizmem złączenia tabel. Może pojawić się w warunku złączenia, gdy dopasowanie wymaga kilku kryteriów, jednak samo AND nie łączy tabel i nie zastępuje JOIN.

W kontekście egzaminu warto pamiętać: jeśli w pytaniu jest mowa o pobraniu pasujących rekordów z dwóch tabel, podstawową odpowiedzią jest JOIN (a doprecyzowanie rodzaju złączenia zależy od tego, czy mają być zwrócone tylko dopasowania, czy także rekordy "niedopasowane").

Dodatkowe pytania

Dodatkowe pytania (FAQ):
JOIN to konstrukcja SQL służąca do łączenia wierszy z dwóch (lub więcej) tabel w jednym wyniku zapytania. Rekordy są dopasowywane na podstawie warunku (najczęściej relacji klucz główny–klucz obcy), dzięki czemu można pobrać powiązane dane bez wykonywania wielu osobnych zapytań.
Najczęściej używa się złączenia tabel z warunkiem dopasowania kluczy, np. identyfikatora z tabeli nadrzędnej i klucza obcego w tabeli podrzędnej. Stosuje się JOIN oraz warunek w ON, aby wskazać, które rekordy z obu tabel mają do siebie pasować.
AND jest operatorem logicznym do łączenia warunków (np. w WHERE lub w ON), ale nie jest mechanizmem łączenia tabel. Tabele łączy się przez JOIN, a AND może jedynie rozszerzać warunek dopasowania (np. o dodatkowe kryterium), gdy już wykonujesz złączenie.
Najczęściej spotkasz: INNER JOIN (zwraca tylko dopasowane wiersze), LEFT JOIN (zwraca wszystkie wiersze z lewej tabeli i dopasowania z prawej), RIGHT JOIN (analogicznie dla prawej) oraz FULL OUTER JOIN (wszystkie wiersze z obu tabel, gdy silnik to wspiera).
INNER JOIN wybiera tylko rekordy, które mają dopasowanie w obu tabelach, więc nadaje się do "korespondujących" danych. LEFT JOIN stosuje się, gdy chcesz zachować wszystkie rekordy z tabeli nadrzędnej (po lewej), nawet jeśli w tabeli podrzędnej brak powiązanych wierszy.
Relacja 1..n (jeden do wielu) oznacza, że jeden rekord w tabeli nadrzędnej może mieć powiązanych wiele rekordów w tabeli podrzędnej. Przykład: jeden klient może mieć wiele zamówień. Zwykle realizuje się to przez klucz obcy w tabeli "wiele".
Częste błędy to: brak warunku ON (powstaje iloczyn kartezjański), użycie niewłaściwych kolumn do dopasowania, mylenie INNER z LEFT JOIN oraz próba "łączenia tabel" samym WHERE/AND bez świadomego zastosowania złączenia i poprawnego klucza głównego/obcego.
W niektórych dialektach SQL da się zapisać złączenie "starym stylem" przez listę tabel w FROM i warunek dopasowania w WHERE. Jednak koncepcyjnie nadal jest to złączenie, a w praktyce i na egzaminach zaleca się czytelny zapis z JOIN i ON.
Jeśli pytanie mówi o pobraniu w jednym wyniku danych z dwóch tabel, które są powiązane (np. relacją 1..n) i mają "pasujące" rekordy, to sygnał do użycia JOIN. Zwykle chodzi o połączenie informacji opisowych z tabeli nadrzędnej z danymi szczegółowymi w tabeli podrzędnej.
Ćwicz na małych bazach: utwórz dwie tabele w relacji 1..n, wstaw kilka rekordów i pisz zapytania z JOIN oraz ON. Sprawdź różnice między INNER i LEFT JOIN na przykładach z brakującymi dopasowaniami. Pomaga też czytanie dokumentacji konkretnego silnika SQL.
info

Około 60% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że aby pobrać odpowiadające sobie wiersze z dwóch tabel powiązanych relacją 1..n, stosuje się złączenie tabel w zapytaniu SELECT.

Źródła:

  • PostgreSQL Documentation: "Joins Between Tables" (SELECT), https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-JOIN - dostęp 2026-02-27
  • MySQL 8.0 Reference Manual: "JOIN Clause" (SELECT Syntax), https://dev.mysql.com/doc/refman/8.0/en/join.html - dostęp 2026-02-27
  • Microsoft Learn: Transact-SQL "FROM (Transact-SQL)" / "JOIN" (opis złączeń), https://learn.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql - dostęp 2026-02-27

Materiały:

  • Dokumentacja SQL dla używanego silnika (np. PostgreSQL/MySQL/SQL Server) – sekcja JOIN
  • Kurs podstaw SQL: SELECT, FROM, WHERE, JOIN
  • Ćwiczenia praktyczne: projekt bazy z relacją 1..n i zapytania łączące tabele

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego