Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Count su due tabelle

  1. #1

    Count su due tabelle

    In due tabelle (Documents e recensioni_altre) ho un campo uguale che ho chiamato r.
    Vorrei contare quante volte il singolo r compare in una tabella e sommare queste occorrenze a quelle dell'altra tabella.
    Il tutto ordinato in maniera decrescente.

    HO provato così ma non funzia (mi sa che ho fatto un casino)

    SELECT Documents.r,COUNT( * ) AS conta FROM Documents,recensioni_altre GROUP BY r ORDER BY conta DESC LIMIT 15
    www.sergiogandrus.it
    Il mio blog sull'informatica

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    SELECT COUNT(Documents.r)+COUNT(recensioni_altre.r) AS totale FROM Documents,recensioni_altre

    think simple think ringo

  3. #3
    Ehm.. ci sono un paio di cosette.
    Non riesco a estrarre i nomi dei recensori (quelli del campo r) a raggrupparne le occorrenze ed a ordinarli in senso decrescente.
    www.sergiogandrus.it
    Il mio blog sull'informatica

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    posta un dump delle tabelle.
    think simple think ringo

  5. #5
    Non sono molto pratico di db.
    Intendi uno schema delle tabelle o un file che deve essere generato da mysql?
    www.sergiogandrus.it
    Il mio blog sull'informatica

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la struttura delle tabelle ed un esempio di quello che intendi realizzare tramite query
    think simple think ringo

  7. #7
    codice:
    tabella 1: Documents
    
    id |      r      |    titolo   |      genere     |  testo  |
     1      pippo        la casa        narrativa      bla bla
     2      pluto        l'osso         saggio         bla bla
     3      pippo       topolinia      geografia       bla bla
     4      minni      io e il topo     saggio         bla bla
    ...     ....          ....             ....         ......
    
    tabella 2: recensioni_altre
    
    rid |    did      |      r      |   testo    |  
     1       1            minni       bla bla 
     2       6       |    pippo    |  bla bla 
    
    id-->did è relazionato uno-a-molti
    
    dalla query esce che 
    
    | recensore | n° recensioni
        pippo           3
        minni           2
        pluto           1
    www.sergiogandrus.it
    Il mio blog sull'informatica

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la query dovrebbe essere così:
    codice:
    SELECT documents.r,COUNT(documents.r)+COUNT(recensioni_altre.r) AS totale FROM documents
    LEFT JOIN recensioni_altre ON recensioni_altre.did = documents.id
    GROUP BY documents.r
    ORDER BY totale DESC

    nell'esempio che hai postato per la tabella2 ho usato questi valori:
    codice:
    rid |    did      |      r      |   testo    |  
     1       4              minni       bla bla 
     2       1              pippo       bla bla
    think simple think ringo

  9. #9
    Perfetto.
    Grazie
    www.sergiogandrus.it
    Il mio blog sull'informatica

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.