Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie sql AVG()
valkirek
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 6
Dołączył: 24.07.2013

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


Witam. Mam pewien problem z zapytaniem:
  1. $checkPhoto=mysql_query("SELECT a.*,count(b.idPhotos) AS counterComm,c.sex,avg(d.rating) AS average
  2. FROM photos a
  3. LEFT JOIN comments b ON a.idPhoto=b.idPhotos
  4. LEFT JOIN profiles c ON a.idUserPhoto=c.idUser
  5. LEFT JOIN rating d ON a.idPhoto=d.idPhoto
  6. GROUP BY a.idPhoto
  7. ORDER BY a.timePhoto LIMIT 0,10");


I problem jest następujący. Jeżeli mam np. 10 ocen w tabeli rating to tak samo wyświetla mi 10 rekordów z tabeli comments. Myśle nad tym i myślę ale nie mam pomysłu jak te dwie tabele rozdzielić bo niby rozdzielone są:

  1. b ON a.idPhoto=b.idPhotos
  2. d ON a.idPhoto=d.idPhoto


Ale zastanawiam się czy tu nie jest problemem ta sama nazwa indexu w dwóch różnych tabelach?

Z góry dzięki za pomoc.

Ten post edytował valkirek 12.03.2014, 20:25:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Jak chcesz rozdzielić, to rozdziel to na dwa zapytania. Dostajesz 10 wierszową równą tabelę zawsze. Nie da się dla różnych kolumn ustalić różnej ilości wierszy (najwyżej dostaniesz NULLa, ale zawsze ten wiersz będzie), chyba, że ja mam jakieś braki w wiedzy. Albo nie zrozumiałem o co chodzi, to jakiś przykład na sqlfiddle może rzuć.
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.10.2025 - 03:59