Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Złożone zapytanie - problem
Forum PHP.pl > Forum > Bazy danych > MySQL
_olo_1984
Mam problem z zapytaniem do bazy, mam dwie tabelki ogłoszenia i oferty:

ogłoszenia
ID | DATA_KONIEC | TYP | CENA | WALUTA

oferty
ID | ID_OGLOSZENIA | OPIS | CENA

chcę w jednym zapytaniu wyświetlić ogłoszenia oraz ile jest ofert do każdego z ogłoszeń,

spłodziłem coś takiego ale wywala mi błąd
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

nie mam już pomysłów - proszę o pomoc

  1. SELECT o.ID, o.DATA_KONIEC, o.TYP, o.TYTUL, o.CENA, o.WALUTA,
  2. COUNT(f.ID) AS ile_ofert FROM OGLOSZENIE o LEFT JOIN OFERTY AS f ON (o.ID=f.ID_OGLOSZENIA) WHERE o.KAT='".mysql_escape_string($kat)."' AND o.STATUS='1';
wijet
cos nie za bardzo znasz spodstawy, komunikat bledy jest chyba jasny

  1. SELECT o.id,o.data_koniec,o.typ,o.cena,o.waluta,i.ilosc_ofert FROM ogloszenia o,(SELECT COUNT(id) ilosc_ofert FROM oferty WHERE id_ogloszenia = o.id) AS i WHERE [tutaj twoje warunki dla ogloszenia]


i popraw bbcode
_olo_1984
Hmm

napisałem Twoje zapytanie ale wywala mi taki błąd: Nieznana kolumna 'o.ID' w where clause,

zrobiłem to jeszcze po swojemu ale nie moge posortować według daty od najmiejszej, a kod jest taki:
  1. SELECT o.ID, o.DATA_KONIEC, o.TYP, o.TYTUL, o.CENA, o.WALUTA,
  2. COUNT(f.ID) AS ile_ofert FROM OGLOSZENIE o LEFT JOIN OFERTY AS f ON (o.ID=f.ID_OGLOSZENIA)
  3. WHERE o.KAT='".mysql_escape_string($kat)."' AND o.STATUS='1'
  4. GROUP BY o.ID
  5. ORDER BY o.DATA_KONIEC;";


czy jest to porawny kod? Dotąd nie mialem potrzeby pisac takich zlozonych zapytan wiec nie wiem,
wijet
Tak zle napisalem,nie idzie na mysqlu
to powinno dzialac
  1. SELECT o.ID, o.DATA_KONIEC, o.TYP, o.TYTUL, o.CENA, o.WALUTA,(SELECT COUNT(id) FROM oferty WHERE id_ogloszenia = o.id) ilosc
  2. FROM ogloszenia o
  3. WHERE o.KAT='jakas kategoria' AND o.STATUS=1
  4. ORDER BY o.DATA_KONIEC


nie wiem czy dobrze zrozumialem, ale nie trzeba grupowac po id
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.