Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacja z którą sie chyba zaraz poddam...
ChanibaL
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.06.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam, mam taki oto problem z MySQL'em: robię z kolegą strone o filmach (kinomania), strona działa już od dawna, ale chciałem ją przyśpieszyć, zabajerować i przerobić baze danych na MySQL (wcześniej była w 300+ plikach .txt, a co najlepsze jescze wcześniej była cała w... javascript!). Na php to się w miarę znam, ale w MySQL jestem nowy i ten problem mnie chwilowo załamał.

Mam parę tabel (w tej chwili ważne są users, movie, comment, screen) wszystkie połączone przez odpowiednie pola ID (np. komentarze do filmów są połączone movieid itp). Jednak jeśli chcę wyświetlić, przykładowo tak jak w tym kawałku kodu poniżej użytkowników razem z ich statystykami, to nie umiem zbyt dobrze skonstruować zapytania. Narazie doszłem do tego:

  1. SELECT users.userid, users.nick, users.name, users.www, users.birth, users.city, users.gg, COUNT(comment.commentid) AS comments, AVG(comment.rating) AS avg, SUM(comment.rating) AS sum, SUM(comment.respect) AS respects,
  2. COUNT(movie.movieid) AS movies, COUNT(screen.screenid) AS screens
  3. FROM users, comment, screen, movie
  4. WHERE users.userid = comment.userid AND users.userid = screen.userid AND users.userid = movie.userid
  5. GROUP BY users.userid;


Wszystko jest niby dobrze, ale jeśli jest w bazie użytkownik który nie dodał minimum 1 komentarza , min. 1 filmu i min. 1 screena to go to zapytanie nie zwraca.

Problem tkwi w np. 'users.userid = movie.userid', ale nie wiem jak to inaczej napisać. Przykładowo jeśli użytkownik nie ma na koncie żadnego dodanego filmu to w jaki sposób ma ta relacja zwórić true?

Wiem, że można by te dane wyświetnić za pomocą wielu zapytań SQL, ale chciałem aby pozostało to bardziej zwięzłe.

Mam nadzieje, że nie namieszałem zbytnio jak na swój pierwszy post? W razie problemów mogę dodać tutaj więcej kodu (tworzenie tabel itp), ale nie chciałem zbytnio zaśmiecać forum.

Ten post edytował ChanibaL 3.07.2004, 02:05:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 15:22