Ciao piero.mac, grazie dell'attenzione. Cerco di spiegarmi meglio.
Supponiamo che la relazione tra x e y sia di uno a molti, ad esempio x tabella clienti e y tabella ordini.
La query che devo fare deve estrarre i clienti che abbiano ad esempio almeno 2 ordini fatti, quindi:
Partendo da questa query devo ottenere un'altra query che conti il numero di record estratti dalla prima.codice:SELECT tab_x.id, count(tab_y.id) AS nr_y FROM tab_x LEFT JOIN tab_y ON tab_y.x_id=tab_x.id GROUP BY tab_x.id HAVING nr_y>=2
Se non ho un costrutto group by-having, la soluzione è semplice, come ho segnalato nel primo post. Avendo invece il group by, se io sostituisco alla select il count(tab_x.id), non ottengo una sola riga con il totale dei record, ma n righe per ogni gruppo di tab_x.id.
Il group by non lo posso togliere perché la clausola in having è fondamentale per calcolare il numero di elementi della tabella x che devo estrarre. Mi chiedevo quindi se esistesse un modo semplice per risolvere questo problema: per ora non mi è venuto in mente.