Hej,
mam pytanie, być może bardzo proste, ale mam problem w bazie danych w Accessie. Mianowicie robię bazę danych wypożyczalni filmów i mam tabele Filmy, Aktorzy, Gatunki oraz dodatkowe tabele AktorzyWFilmach i GatunkiFilmow, generalnie po to aby była relacja wiele-do-wielu (jeden film może mieć kilku aktorów, aktor może grać w wielu filmach).
I chciałbym wyświetlić w kwerendzie wszystkie dostępne filmy, ale gdy ją tworzę to zamiast wyświetlać mi jeden film w jednym wierszu, wyświetla tyle razy ile jest kombinacji z aktorem/gatunkiem.
Mam nadzieję, że w miarę jasno opisałem dany problem i liczę na pomoc :) Dziękuję.
Rozwiązanie 1:
Select distinct(nazwa_filmu) from aktorzywfilmach
Rozwiązanie 2:
Select nazwa_filmu from aktorzywfilmach group by nazwa_filmu
Pozdrawiam ;)
Jeśli potrzebujesz tylko listę filmów to nie dołączaj innych tabel.
SELECT * FROM Filmy
zależy mi na kwerendzie, która jakby pokaże spis filmów wraz z gatunkami i aktorami, a dane przechowywane są w różnych tabelach..
Nie do końca rozumiem o co Ci chodzi w 1 poście napisałeś:
I chciałbym wyświetlić w kwerendzie wszystkie dostępne filmy, ale gdy ją tworzę to zamiast wyświetlać mi jeden film w jednym wierszu, wyświetla tyle razy ile jest kombinacji z aktorem/gatunkiem.
a teraz piszesz:
zależy mi na kwerendzie, która jakby pokaże spis filmów wraz z gatunkami i aktorami, a dane przechowywane są w różnych tabelach..
W takim razie musisz użyć inner join pomiędzy tabelami, ale logicznym jest, że jeżeli film ma wielu aktorów to dostaniesz wiele rekordów, to wynika ze specyfikacji inner joina.
Niestety - jeśli chodzi o pojedynczą kwerendę - to raczej trudny temat. Chyba, że istnieją funkcje agregujące pozwalające na sklejanie tekstów.
Standardowo w takich przypadkach robisz kilka zapytań - lista filmów, gatunki przypisane do wybranego filmu, aktorzy grający w filmie, itd. Wówczas możesz wywołać w raporcie najpierw listę filmów, potem dla każdego filmu listę gatunków / aktorów.
aa czyli nie da się połączyć tego tak, aby w jednym wierszu danego filmu było kilku aktorów lub gatunków, tylko każdy rekord po kolei..
ok rozumiem, właśnie próbowałem na wiele sposobów i utwierdziliście mnie że się nie da, więc nie szukam dalej :) spróbuje innego rozwiązania.. dzięki!
super, jakbyś miał chwilkę to byłbym wdzięczny :)