Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Złożone zapytanie - problem
_olo_1984
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


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';


Ten post edytował _olo_1984 20.03.2007, 15:18:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wijet
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


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

Ten post edytował wijet 20.03.2007, 15:07:55
Go to the top of the page
+Quote Post
_olo_1984
post
Post #3





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


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,
Go to the top of the page
+Quote Post
wijet
post
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


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
Go to the top of the page
+Quote Post

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: 22.08.2025 - 14:27