Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kłopot z relacją
Forum PHP.pl > Forum > Bazy danych > MySQL
acztery
mam takie zapytanie. Działa prawie dobrze tylko źle zlicza rekordy w tabeli documents_con ( przechowuje tam dokumentu która są powiązane z innymi ) Czyli chce policzyć ile jest rekordów w taeli documentc_con odpowiadających documents.Id = documents_con.DocId ale to nie działa, zlicza dla 1 rekordów a w drugim pokazuję ilość wszystkich, dziwne. Myślę ze coś z grupowaniem nie tak ..

może ktos wie co nie tak z tym zapytaniem,

  1. SELECT *, documents.CreateDate AS CreateDate , documents.Img AS Img , documents.Lang AS Lang , documents.Id AS Id , count(ifnull(documents_con.Id,0)) AS CountDocumentsCon
  2. FROM `documents` LEFT JOIN `documents_con` ON `documents_con`.`DocId`=`documents`.`Id`
  3. LEFT JOIN `user` ON `user`.`user_id`=`documents`.`UserId`
  4. WHERE ( documents.Lang = 'Polski' )
  5. GROUP BY documents_con.Id
  6.  
  7. ORDER BY documents.time DESC LIMIT 0, 14
kris2
  1. SELECT *, d.CreateDate AS CreateDate , d.Img AS Img , d.Lang AS Lang , d.Id AS Id ,
  2. ( SELECT count(d_c.Id) FROM documents_con dc WHERE dc.DocId=s.Id ) AS dc_count
  3. FROM `documents` d
  4. LEFT JOIN `user` u ON u.`user_id`= d.`UserId`
  5. WHERE ( d.Lang = 'Polski' )
  6.  
  7. ORDER BY d.time DESC LIMIT 0, 14


ja bym to próbował zrobić jakoś tak chociaż do końca nie jestem pewien co próbujesz osiągnąć winksmiley.jpg

---
Pamiętaj o BB Code (poprawiłem)
---
~strife
kwiateusz
przy okazji nie musisz wszędzie dodawać as... d.CreateDate zostanie zwrócone jako CreateDate winksmiley.jpg bez nazwy tabeli bądź jej aliasu
acztery
musze bo to jest zapytanie generowane prez DB_DataObject jak by nie dal to pobrał by dane z tabeli documnets_Con.

DB_DataObject nie obsługuje podzapytan:/
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.