Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478

    [MySQL] Più COUNT in unica query

    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

  2. #2
    Utente di HTML.it L'avatar di raf86
    Registrato dal
    Feb 2001
    Messaggi
    175
    ma per il resto la query restituisce i valori attesi?
    Staiano Raffaele: web agency di Realizzazione siti web, posizionamento siti internet e molto altro

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Si.

    Così come l'ho postata la query fa esattamente quello che deve...

    Il problema si verifica solo quando aggiungo un secondo COUNT sulla tabella "fotografie". E' solo allora che i valori sono sballati!

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478




    Andrebbe bene anche un link, un articolo o qualsiasi altra cosa che mi faccia capire se è possibile o no avere più di un'istruzione COUNT nella stessa query...

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478



    Ho come la strana sensazione che quello che ho provato a cheidervi o è troppo stupido da risolvere oppure è impossibile...


    C'è qualcuno che gentilmente potrebbe dirmi solo se si può fare oppure no?

  6. #6
    Utente di HTML.it L'avatar di raf86
    Registrato dal
    Feb 2001
    Messaggi
    175
    potresti incollare anche la query che non ti funziona? così proviamo a vedere..grazie
    Staiano Raffaele: web agency di Realizzazione siti web, posizionamento siti internet e molto altro

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    No, ma la query è la stessa che ho indicato nel primo post all'inizio della discussione! e così com'è, funziona. Il problema nasce "solo" quando tento di avere dei risultati, il count appunto, così come per la tabella "commenti", per la tabella "fotografie".

    In pratica, alla query che ho postato, se aggiungo (oltre a tutto il resto così come la vedete sopra)

    codice:
    COUNT(fotografie.id_dvd) AS num_fotografie
    succede che i valori estratti risultano falsi in quanto compaiono gli stessi numeri per entrambe le tabelle, sia "commenti" che "fotografie".

    Per questo motivo vi chiedevo se fosse possibile mettere due count in una sola query.

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478



    ...non ci arrivo! mi date una mano?

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    ...nada?

    mah! però vi giuro che stento a credere che tra tanti "scienziati" come voi nessuno abbia avuto la pazienza ( volontà, voglia, pietà ) di dirmi solo si o no...



    (epilogo)


    Tanti cari, cari saluti a tutti...

  10. #10
    Utente di HTML.it L'avatar di raf86
    Registrato dal
    Feb 2001
    Messaggi
    175
    non penso ci siano problemi ad usare + di un count ma non posso darti la certezza..il mio dubbio era proprio sulla query in sè per sè..però se mi dici che restituisce i risultati attesi..
    Staiano Raffaele: web agency di Realizzazione siti web, posizionamento siti internet e molto altro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.