Salve a tutti,
ho due tabelle (un di categorie ed una di prodotti) che utilizzano una struttura di tipo nested set.
Ho la necessità di estrapolare tutti i prodotti in ricorsione dalla categoria con id = 2 INCLUDENDO SOLO le categorie con id 4,5,6,7 (e ovviamente anche l'id 2) escludendo dalla ricerca quindi le categorie che hanno id diversi da (2,4,5,6,7).
Ho realizzato questa query FUNZIONANTE che però fa utilizzo di subquery.
Vorrei evitare di usare le subquery trasformandole in JOINS.
Qualcuno mi può venire in aiuto???
Grazie a tutti 
ecco la query:
codice:
SELECT
prodotti.id,
prodotti.nome,
node.name as cat
FROM tab_prodotti AS prodotti
INNER JOIN tab_categorie AS node
INNER JOIN tab_categorie AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND (
node.id = ANY ( SELECT node.id FROM tab_categorie AS node INNER JOIN tab_categorie AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND parent.id = 4 ORDER BY node.lft ) OR
node.id = ANY ( SELECT node.id FROM tab_categorie AS node INNER JOIN tab_categorie AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND parent.id = 5 ORDER BY node.lft ) OR
node.id = ANY ( SELECT node.id FROM tab_categorie AS node INNER JOIN tab_categorie AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND parent.id = 6 ORDER BY node.lft ) OR
node.id = ANY ( SELECT node.id FROM tab_categorie AS node INNER JOIN tab_categorie AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND parent.id = 7 ORDER BY node.lft )
)
AND node.id = prodotti.cat_id AND parent.id = 2
GROUP BY prodotti.id
ORDER BY node.name ASC