Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Sql: COUNT su due tabelle

    un saluto a tutto il forum

    scrivo questo messaggio perchè volevo chiedervi un aiuto su come strutturare una query sql.

    ho un database con due tabelle "t1" e "t2", che contengono ciascuna un attributo di tipo INT con lo stesso nome ("utente").

    mi interesserebbe effettuare una somma di tutti i records della tabella "t1" e della tabella "t2" che hanno un determinato valore sull'attributo "utente".

    per far questo ho utilizzato l'operatore COUNT, ma non sono ancora riuscito ad effettuare il conteggio su entrabe le tabelle, pur usando correttamente gli alias, ma soltanto su una.

    è possibile quindi utilizzare COUNT(*) per effettuare un conteggio contemporaneo su due tabelle? oppure devo rassegnarmi ad effettuare due query separate, e poi sommare i risultati ottenuti?
    se è possibile, potreste indicarmi un breve esempio?

    vi ringrazio in anticipo, e ne approfitto per farvi i complimenti per il forum.

  2. #2
    Due select con COUNT(*) sono piu' veloci di un JOIN.

    Bisognerebbe vedere bene la struttura ed i legami delle due tabelle... ma cosi' ad occhio un count ti rendera' (penso) un prodotto cartesiano.... tab a x tab b. Meglio due query.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ciao piero, grazie per la risposta

    le due tabelle sono così composte:

    T1:
    ID (int(11) - primary key), TITOLO (varchar(20)), AUTORE (int(11))

    T2:
    ID (int(11) - primary key), METODO (varchar(20)), AUTORE (int(11))

    a me interessa sapere il numero totale di records di T1 e T2 che hanno il valore "45" sull'attributo AUTORE.

    non c'è modo di utilizzare un'unica query?

    grazie.

  4. #4
    purtroppo no, perche' il valore attribuito ad autore porta una relazione molti a molti. Molti record di tabella uno corrispondono a molti record della tabella due. Condizione proibitiva in un database normalizzato.

    Nel tuo caso ti renderebbe il prodotto tra la prima e la seconda tabella.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    ok, grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.