Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie danych z dwóch tabel z warunkiem count()
Forum PHP.pl > Forum > Przedszkole
kleszczoscisk
Witam i proszę o podpowiedź.

Dwie tabele: producenci i produkty.
Chcę wyciągnąć losowo jednego producenta spośród tych, którzy mają określoną ilość produktów, np. więcej niż 10.

  1. $zapytanie = "SELECT
  2. COUNT(products.product_id) AS ile,
  3. manufacturers.producent_id,
  4. manufacturers.name,
  5. FROM `manufacturers`
  6. JOIN `products` ON (manufacturers.producent_id = products.producer_id)
  7. WHERE
  8. (...)
  9. AND COUNT(products.product_id) > 10
  10. ORDER BY rand()
  11. LIMIT 1";

AND COUNT(products.product_id) > 10 - tak kombinuję ale jest błąd
Cytat
#1111 - Invalid use of group function


Proszę o pomoc.
kadlub
a jak byś dał w warunku questionmark.gif

  1. AND (SELECT COUNT(products.product_id) FROM manufacturers) >10
  2.  
kleszczoscisk
Zarówno kiedy daję to w WHERE jak i w złączeniu
  1. JOIN products ON (manufacturers.producent_id = products.producer_id AND (SELECT COUNT( products.product_id ) FROM products ) >10)

to nie ma błędu ale pobiera wyniki nie uwzględniając warunku > 10
Dominis
Jeśli nie znajdziesz innego rozwiązania to możesz użyć HAVING

  1. SELECT
  2. COUNT(products.product_id) AS ile,
  3. manufacturers.producent_id,
  4. manufacturers.name,
  5. FROM `manufacturers`
  6. JOIN `products` ON (manufacturers.producent_id = products.producer_id)
  7. GROUP BY products.product_id
  8. HAVING ile > 20
  9. ORDER BY rand()
  10. LIMIT 1
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.