Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] WHER IS THE BUNNY
Forum PHP.pl > Forum > Bazy danych > MySQL
dawijanii
Hi mam taki problemik chce w jednym zapytaniu wyciągnąc dane do nyusów oraz liczbe komentarzy wiem że można to zastosować w dwóch zapytaniach lub przez Union lecz to drugie nie wychodzi a to pierwsze nie za ładnie wygląda ponizsze zapytanie zwraca liczbe komentarzy jedna dla wszystkich newsów lecz mi chodzi o to by było to dla poszczególnego newsa czylu WHERE dla danej tabeli

  1. SELECT n.*, COUNT(c.pid) AS ile
  2. FROM tabela1 AS n, tabela2 AS c
  3. WHERE (n.id = c.pid)
  4. GROUP BY n.id DESC';
SongoQ
UNIONem tego nie zrealizujesz bo UNION dodaje zbiory wynikow z 2 zapytan.

  1. SELECT n.id, n.news, COUNT(c.pid) AS ile
  2. FROM tabela1 n, tabela2 c
  3. WHERE n.id = c.pid
  4. GROUP BY n.id, n.news';


To Ci zwroci newsy + ilosc dla rekordow ktore beda mialy komentarze. Jesli chcesz zwrocic newsy gdzie nie ma komentarzy to musisz uzyc LEFT JOIN
dawijanii
Kombinuje kombinuje i nadal to samo gdy nie ma komentarza to nyus nie jest wyświetlany

  1. SELECT n.*, COUNT(c.pid) AS ile
  2.  
  3. FROM news AS n, comment AS c
  4. LEFT JOIN comment ON c.pid
  5. WHERE ( c.pid = n.id )
  6. GROUP BY n.id DESC
sobstel
proponuje zajrzec tutaj http://dev.mysql.com/doc/mysql/en/join.html
a co do zapytania to ja bym tak to widzial :

  1. SELECT n.*, COUNT(c.pid) AS ile
  2. FROM news AS n LEFT JOIN comment AS c ON c.pid = n.id
  3. GROUP BY n.id DESC
dawijanii
fiu działa doskonale dzinks i siekierka dla ciebie tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.