Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [MySQL] Select count di più campi & tabelle nell'ultim'ora

    Salve a tutti,

    ho la seguente query che si occupa di recuperare da più tabelle il totale degli id aggiunti nell'ultim'ora ma non funge

    codice:
    (SELECT COUNT(id) FROM tabella1)
     UNION 
    (SELECT COUNT(id) FROM tabella2)
     UNION 
    (SELECT COUNT(id) FROM tabella3)
     WHERE timestamp BETWEEN DATE_SUB(NOW() - INTERVAL 1 HOUR) AND NOW();

    Dove sbaglio?


    Grazie in anticipo.

  2. #2
    che errore ti da?
    hai provato a dare un alias?

    SELECT COUNT(id) AS pippo ...
    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Ciao f, mi da errore di sintassi a mi inizia a riportare il codice a partire da "WHERE". L'alias come faccio a darlo a tutti? Sono diverse tabelle..mmh..

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: [MySQL] Select count di più campi & tabelle nell'ultim'ora

    Originariamente inviato da wartpro
    Salve a tutti,

    ho la seguente query che si occupa di recuperare da più tabelle il totale degli id aggiunti nell'ultim'ora ma non funge

    codice:
    (SELECT COUNT(id) FROM tabella1)
     UNION 
    (SELECT COUNT(id) FROM tabella2)
     UNION 
    (SELECT COUNT(id) FROM tabella3)
     WHERE timestamp BETWEEN DATE_SUB(NOW() - INTERVAL 1 HOUR) AND NOW();

    Dove sbaglio?


    Grazie in anticipo.
    Sbagli perché dovresti usare la query che ti ho consigliato ieri, ossia
    SELECT count(id) from (
    select con tutte le union
    ) as t
    WHERE timestamp BETWEEN DATE_SUB(NOW() - INTERVAL 1 HOUR) AND NOW();

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie a tutti per il supporto. Ancora errore..osservate:

    codice:
    SELECT COUNT(id) FROM 
     (SELECT COUNT(id) FROM tabella1
        UNION 
      SELECT COUNT(id) FROM tabella2 
        UNION
      SELECT COUNT(id) FROM tabella3) 
    AS t WHERE t.timestamp BETWEEN DATE_SUB(NOW() - INTERVAL 1 HOUR) AND NOW();

    Errore riportato stavolta:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND NOW()' at line 1


    Santi subito!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Purtroppo, dopo diversi tentativi, non sono riuscito ad ottenere il risultato voluto. Quindi la risposta alla domanda:

    "A quanto ammonta la somma dei campi id inseriti nella tabella A, tabella B, tabella C nel giro dell'ultima ora?"

    (tabelle che sono identiche, solo il nome della tabella cambia)

    ..non è stata trovata.

    Però ho pensato di utilizzare un "workaround". I cicli via PHP. Solo che per ciclare (e non inviare singole query che potrebbe essere seccante), avrei bisogno di estrarre i nomi delle tabelle che mi servono e ciclare su queste per ottenere il totale voluto.

    Se qualcuno potesse darmi un'indicazione nel frattempo che vedo di risolvere, sarebbe grandioso.


    Grazie a tutti in anticipo e posticipo

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select sum(tot) as tot from (
    (select count(id) as tot from tabella1 where timestamp >= now() - interval 1 hour)
    union all
    (select count(id) from tabella2 where timestamp >= now() - interval 1 hour)
    union all
    (select count(id) from tabella3 where timestamp >= now() - interval 1 hour)
    ) as t

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Grazie nicola! Funziona alla perfezione!



    Ora però mi sa che, data la mole di tabelle che il database andrà a gestire mi sa che è meglio davvero il "workaround" che avevo pensato..

    Ad ogni modo, grazie infinite!

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.