Salve a tutti
In un mio script ho la seguente query:
Mi sono appena reso conto che questa query, nonostante il LEFT JOIN, non restituisce i valori della tabella "programmes" se "items.count" = 0.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
Facendo qualche ricerca, ho trovato questa soluzione:
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.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
Grazie a tutti!

Rispondi quotando
