Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jedna tabela, jak usparwnić nie tworząc 2 zapytań.
Forum PHP.pl > Forum > Bazy danych > MySQL
axxxon
Witam, a więc mam następujący problem, posiadam tabele zgromadzeni o polach:
Id , cena , typ, id_nabywcy, status

Muszę skonstruować takie zapytanie które zwróci wszystkie unikalne typy wraz z cenami(jeden typ może mieć parę różnych cen - wtedy traktowac to musze jako oddzielny wypadek) wraz z liczba wszystkich nabywców

do tego celu wykorzystuję takie zapytanie

  1. SELECT DISTINCT `typ` , `cena` , (
  2.  
  3. SELECT count( `id_nabywcy` )
  4. FROM `zgromadzeni`
  5. GROUP BY `typ`
  6. LIMIT 1
  7. )
  8. FROM `zgromadzeni` WHERE `status`=1


które jak widać nie jest najwydajniejsze, bo nie zawraca sumy nabywców dla każdego typu tylko cały czas dla pierwszego.

Dlatego prosiłbym o pomoc w znalezieniu sposobu na usprawnienie tego zapytania
toel
  1. SELECT DISTINCT `typ` , `cena` , (
  2.  
  3. SELECT count( `id_nabywcy` )
  4. FROM `zgromadzeni` z2
  5. WHERE `z2`.`typ`=`z1`.`typ`
  6. LIMIT 1
  7. )
  8. FROM `zgromadzeni` z1 WHERE `status`=1
  9.  


Nie sprawdzałem, może gdzieś błąd w apostrofach zrobiłem, ale ogólnie coś takiego powinno działać.
sazian
a nie wystarczy tak questionmark.gif
  1. SELECT `typ` , `cena`
  2. FROM `zgromadzeni` z1 WHERE `status`=1
  3. GROUP BY `typ` , `cena`
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.