Zapytania SQL

0

Witam, potrzebuję drobnej pomocy przy kilku zapytaniach ( złączenia zagnieżdżone jesli to mozliwe):

Wyświetlić listę studentów z grupy o nazwie „Grupa 02”.
(NR_ALBUMU, NAZWISKO)

SELECT x.nr_albumu,x.nazwisko,x.nr_gr,x.nazwa 
FROM (SELECT student.nr_albumu,student.nazwisko,student.nr_gr,grupa.nazwa FROM STUDENT,GRUPA WHERE grupa.nr_gr = student.nr_gr)x
ORDER BY x.nazwa;

Czy to ma być coś takiego ?

1
  1. subselect jest zupełnie niepotrzebny
  2. masz wprowadzoną relację "niejawnie" w klauzuli WHERE. Jest to OK, ale uważa się, że ładniejsze jest JOIN ON
  3. Na odwrót, w WHERE brakuje ci wyboru dla grupy, wybierasz wszystko
  4. Alias x przy where jest najdziwniejszy jaki widziałem? Nie sygnalizuje Ci błędu?
0

Szczerze powiedziawszy to nie mam pojęcia czy są błędy, ponieważ mam 46 zadań tego typu zadanych na uczelni, a na moim PC nie działa sql developer, mam jakiś problem z listenerem i nawet ręczna aktywacja nie pomaga, nie mogę stworzyć połączenia. Więc na ,,szucho,, robie to w notepadzie i licze, że jakoś to przejdzie, choc zależy mi żeby to pojąć. Eh te wirusy i zamykanie uczelni.

2

Na http://sqlfiddle.com/ możesz wybrać silnik bazodanowy, utworzyć strukturę tabel, wypełnić danymi i ćwiczyć różne zapytania. W ten sposób odpadnie Ci problem łączenia z bazą danych ze swojego PC.

0

SELECT STUDENT.NR_ALBUMU, STUDENT.NAZWISKO, GRUPA.NR_GR, GRUPA.NAZWA AS "Nazwa grupy" FROM STUDENT LEFT OUTER JOIN GRUPA ON STUDENT.NR_GR = GRUPA.NR_GR ORDER BY "Nazwa grupy" ASC;

Takie coś teraz wymyślilem, jest lepiej ?

0

Czemu bez sensu ? Tym joinem łączę dane z tabeli która jest nademną, w tazdym razie tak to rozumiem i tak zrobiłem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1