Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> GROUP BY i zależność od innej tabeli
krysk
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 20.04.2002
Skąd: Szczecin

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


Witam,

chciałbym pobierać dane z tabeli A w zależności od sumy rekordów spełniających dany warunek w innej kolumnie. Chciałbym to zrobić w jednym zapytaniu, w dwóch wyglądałoby to następująco:

  1. <?php
  2. $num = mysql_num_rows(mysql_query("SELECT id_a FROM tabela1 WHERE `id_a`='". $id_a. "'"));
  3. $q = mysql_query("SELECT * FROM tabela2 WHERE `kom`>'". $num "'");
  4. ?>


Próbowałem to rozwiązać poprzez:

  1. SELECT
  2. serwer_article.*, COUNT(serwer_dodano.id_a) AS dod
  3. FROM serwer_article, serwer_dodano
  4. WHERE COUNT(serwer_dodano.id_a) < serwer_article.sum
  5. GROUP BY serwer_dodano.id_a


Ale niestety to nie działa... Gdzie leży problem?
Go to the top of the page
+Quote Post
prond
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Nie możesz się odwołać w klauzuli WHERE do agregatu wyliczonego w tym samym zapytaniu.
Musisz to zrobić stosując podzapytanie, w którym zliczysz rekordy, dopiero potem możesz założyć na nie warunek:
  1. SELECT * FROM ( SELECT
  2. serwer_article.*, COUNT(serwer_dodano.id_a) AS dod
  3. FROM serwer_article, serwer_dodano
  4. GROUP BY serwer_article.*) AS a,
  5. serwer_article
  6. WHERE a.dod < serwer_article.sum
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: 15.09.2025 - 08:37