mysql> SELECT * FROM kategorie_ksiazki WHERE id_ksiazki='42'; +------------+--------------+ | id_ksiazki | id_kategorii | +------------+--------------+ | 42 | 7 | | 42 | 40 | | 42 | 56 | +------------+--------------+
mysql> SELECT p.* FROM kategorie_ksiazki k JOIN powiazania p ON k.id_kategorii=p.child_id WHERE k.id_ksiazki='42'; +-----------+----------+-------+ | parent_id | child_id | depth | +-----------+----------+-------+ | 7 | 7 | 0 | | 40 | 40 | 0 | | 7 | 40 | 1 | | 56 | 56 | 0 | | 40 | 56 | 1 | | 7 | 56 | 2 | +-----------+----------+-------+
Zapytanie które powinno mi zwrócić wartość 56:
mysql> SELECT child_id FROM (SELECT child_id,COUNT(child_id) AS sm FROM powiazania p JOIN kategorie_ksiazki k ON k.id_kategorii=p.child_id WHERE k.id_ksiazki='42' GROUP BY child_id) AS acb WHERE acb.sm=MAX(sm);
Wywala mi : Invalid use of group function
Coś jest źle z końcowym warunkiem WHERE, ale nie wiem jak to poprawnie napisać.