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

Tabele Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Opcje odpowiedzi:
A
SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa = 15;
B
SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia;
C
SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
D
SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: D (SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy....)

SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;. Uwaga: W odpowiedziach A i C brakuje warunku filtrowania po grupie, a w opcji D jest poprawny warunek JOIN i filtr po grupie. Zakładając, że pytanie jest o poprawne połączenie i filtrowanie, opcja D jest najbliższa, ale z korektą warunku JOIN.

KOD
**Poprawiona opcja D (i prawdopodobnie intencja pytania dla poprawnej odpowiedzi) powinna wyglądać tak:**
`SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE Studenci.grupa = 15;`

Przeanalizujmy, co chcemy osiągnąć i jak połączyć tabele:
- Chcemy `nazwisko` z tabeli `Studenci` i `idZajecia` z tabeli `Zapisy`.
- Musimy połączyć tabelę `Studenci` z tabelą `Zapisy`. Zgodnie ze schematem, relacja `Rel_02` łączy te tabele. Kluczem głównym w `Studenci` jest `id`, a odpowiadającym mu kluczem obcym w `Zapisy` jest `idStudenta`. Zatem warunek złączenia (JOIN) powinien być: `Studenci.id = Zapisy.idStudenta`.
- Chcemy wybrać tylko studentów z `grupa = 15`. Kolumna `grupa` znajduje się w tabeli `Studenci`.

Analiza opcji:

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa = 15;
  • B: rakuje jednak warunku filtrowania WHERE Studenci.grupa = 15. Zapytanie zwróci dane dla wszystkich studentów, a nie tylko z grupy 15.
  • C: SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta; - Warunek złączenia ON Studenci.id = Zapisy.idStudenta jest poprawny.

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.