Salve a tutti

In un mio script ho la seguente query:

codice:
SELECT programmes.*, COUNT(DISTINCT(items.series)) AS series, COUNT(items.id) AS items_count
FROM programmes LEFT JOIN items
ON (programmes.id = items.programme_id)
WHERE programmes.trashed = 0
AND items.trashed = 0
GROUP BY programmes.id
ORDER BY programmes.name_it ASC
Mi sono appena reso conto che questa query, nonostante il LEFT JOIN, non restituisce i valori della tabella "programmes" se "items.count" = 0.

Facendo qualche ricerca, ho trovato questa soluzione:

codice:
SELECT programmes.*, COUNT(DISTINCT(items.series)) AS series, COUNT(items.id) AS items_count
FROM programmes LEFT JOIN items
ON (programmes.id = items.programme_id AND programmes.trashed = 0 AND items.trashed = 0)
GROUP BY programmes.id
ORDER BY programmes.name_it ASC
In pratica, include gli statement del WHERE direttamente nelle condizioni del JOIN. A prima vista sembra funzionare perfettamente, ma dal momento che non ho mai visto nč usato un construtto del genere vorrei sapere se effettivamente č valido e privo di effetti collaterali.


Grazie a tutti!