Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: newsy - pobranie jednym zapytniem z kilku tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
stal-sw
Witam.
Mam 3 tabele w baize dnaych.

I tak:
----newsy - id,tytul, tresc, autor
----admini - id, login
----komentarze - id, dzial, rekord_komentowany, tresc

I teraz chce wysietlic wszytkie newsy i chce wykorzystac jedno zpaytanie aby pobrac:
wszytko z tabeli newsy, login autora newsa(admina), oraz liczbe komentarzy danego newsa. Pole dzial w zpaytaniu ma miec wartosc 1 (a to daltego ze tabela z komentarzami jest sotwrzona nie tylko do komentowania newso ale i innej zawartosci sotrny - i do rozrozniania sluzy pole DZIAL.

Bardzo prosze o pomoc - wiem ze zapewne trzba uzyc LEFT JOINOW ale z nimi jeszcze mam problemy.
FiDO
  1. SELECT n.*, a.login autor, COUNT(*) komentarzy
  2. FROM newsy n
  3. INNER JOIN admini a ON (n.autor = a.id)
  4. LEFT JOIN komentarze k ON (n.id = k.rekord_komentowany AND k.dzial = 1)
  5. GROUP BY n.id
stal-sw
Witam.
Prawie dziala.
Ogolnei jest taki problem ze jak dla danego newsa nei ma wogole komentarzy to i tak wysietla mi zawsze liczbe komentarzy 1, zamiast 0.
Proboje to jakos zmienic ale dalej nie che wysitelic libczy 0 jesli nie ma zadnego komentarza.
FiDO
Moj blad.. zmien na COUNT(k.id)
stal-sw
Witam.
Wielkie dzieki FIDO teraz juz ladnie dziala.

Mam jeszcze jedno pytanko w tym temacie:
jak zastosowac d tego zapytania SUBSTRING aby pobieral tylko 250 znakow z pola TRESC questionmark.gifquestionmark.gif
FiDO
uzyc funkcji LEFT(n.tresc, 250)
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-2025 Invision Power Services, Inc.