Sapreste dirmi se esiste un modo per inserire in un'unica query più di un COUNT?
Ho provato a cercare in giro qualcosa ma non sono riuscito a trovare nulla.
Per aiutarvi ad aiutarmi (scusate il gioco di parole
) vi posto il codice che attualmente sto utilizzando e attraverso cui riesco a fare il COUNT solo sulla tabella "commenti". Se provo ad aggiungere le stesse istruzioni per ottenere ancora un'altro OCUNT sulla tabella "fotografie" il risultato è che il valore estratto sia dal conteggio per la tabella "commenti" che per "fotografie" è identico. Cioè se in un record (id.dvd) ci sono 2 commenti e 5 fotografie, quando estraggo i dati ottengo sempre lo stesso numero per entrambe le cose: commenti 5 - fotografie 5
Questa è la query (la posto così com'è, incluse istruzioni che non c'entrano niente col problema del doppio COUNT)
Codice PHP:
$sql = paging("
SELECT dvd.*, dvd.id_dvd AS IDdvd,
IF(LENGTH(dvd.trama) > 90,
CONCAT(SUBSTRING(dvd.trama, 1, 90), '...'), dvd.trama) AS pre_trama,
genere.*, COUNT(commenti.id_dvd) AS num_commenti,
visite.*, visite.conto AS num_visite
FROM dvd
LEFT JOIN genere ON genere.id = dvd.id_genere
LEFT JOIN commenti ON commenti.id_dvd = dvd.id_dvd
LEFT JOIN visite ON visite.id_dvd = dvd.id_dvd
GROUP BY dvd.id_dvd, commenti.id_dvd
ORDER BY $ord $by, dvd.titolo", $num);
Forse non è necessario, ma per completezza aggiungo anche la parte di codice relativa all'estrazione dei dati...
Codice PHP:
$out .= ($row->conto < 1) ? '' : "Hits: [b]$row->conto[/b] - ";
$out .= ($row->num_commenti < 1) ? '' :
"Commenti: <a href=\"commenti.php?id=$row->IDdvd\">
[b]$row->num_commenti[/b]</a>";
Grazie