Drugi dzień męczenia się z jednym zapytaniem do bazy mnie już trochę zirytował. Stąd moja prośba o pomoc i wytłumaczenie co jak i dlaczego ewentualne rozwiązanie zadziała.
Mianowicie. Mam dwie tabele: filmy oraz rezerwacje:
id | tytul | rezyser
----+----------+--------
5 | Film 1 | Dolan
6 | Film 2 | Nolan
7 | Film 3 | Folan
id | idFilmu | liczbaBiletow | kino
----+---------+---------------+---------
1 | 5 | 20 | kino1
2 | 6 | 10 | kino1
3 | 5 | 5 | kino3
4 | 7 | 12 | kino2
5 | 7 | 130 | kino1
6 | 6 | 86 | kino3
7 | 6 | 4 | kino4
Muszę napisać zapytanie które zwróci id filmu, tytuł filmu i sumę sprzedanych na niego biletów. W taki sposób że dla podanych tabel wynik będzie przedstawiony w ten sposób:
id | tytul | sumaBiletow
----+----------+-------------
5 | Film 1 | 25
6 | Film 2 | 100
7 | Film 3 | 142
Doszedłem do tego że wiem że muszę wykorzystać JOINa i GROUP BY. Stworzyłem coś takiego:
SELECT filmy.id, filmy.tytul, SUM(rezerwacje.liczbaBiletow) as sumaBiletow
FROM filmy
INNER JOIN rezerwacje ON filmy.id=rezerwacje.idFilmu
GROUP BY rezerwacje.idFilmu;
Całe zapytanie nie działa bo nie jest jednoznaczne. Nie mogę znaleźć informacji na temat jak poprawnie skonstruować takie zapytanie gdzie musiał bym połączyć dwie tabele a następnie sortować po pojedynczym elemencie z jednej z tych tabel. Czy ktoś byłby w stanie wytłumaczyć mi w jaki sposób napisać takie zapytanie z wykorzystaniem GROUP BY? I czy JOIN jest tutaj faktycznie niezbędny?