Mam 4 poziomy kategorii i potrzebuje aby po kliknięciu w kategorię nr 1(najwyższego rzędu) wyświetliły mi się porady z wszystkich podkategorii włącznie z poziomem 4. Wspomnę, iż porady mogą być zapisywane w kategoriach rzędu 2,3 i 4. Przy czym czasami są tylko 2 poziomy.
Tabela kategorii:
id|cat_id|title
Tabela porad:
id|cat_id|user_id|title|.......
SELECT DISTINCT a.id, a.user_id, a.photo, a.title, a.date, a.views, u.username FROM `advices` AS a, `users` AS u , `categories` AS c1, `categories` AS c2, `categories` AS c3 WHERE ((c1.`cat_id`='$cat' AND c1.`id`=a.`cat_id`) OR (c1.`cat_id`='$cat' AND c1.`id`=c2.`cat_id` AND c2.`id`=a.`cat_id`) OR (c1.`cat_id`='$cat' AND c1.`id`=c2.`cat_id` AND c2.`id`=c3.`cat_id` AND c3.`id`=a.`cat_id`)) AND a.`user_id`=u.`id`
Powyższe zapytanie długo się wykonuje i pewnie im więcej będzie porad będzie co raz gorzej.
Proszę o pomoc z zoptymalizowaniu zapytania.
Będę wdzięczny za pomoc. Pozdrawiam