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

    [mysql] problemi con COUNT

    Voglio estrarre il numero di topics e di posts (distintamente) scritti in un determinato giorno, oltre all'ultimo messaggio dello stesso giorno; tutto questo con una sola query.
    Uso questa query:
    codice:
    SELECT t.id AS idtopic,t.userid,t.tdata,t.oggetto,
    p.topicid,p.userid,p.pdata,
    COUNT(DISTINCT(t.id)) AS tot_topics,COUNT(DISTINCT(pp.id)) AS tot_posts,
    u.nome,uu.nome,
    IFNULL(p.pdata,t.tdata) AS ultimadata
    FROM topics AS t, posts AS pp
    LEFT JOIN posts AS p ON p.topicid=t.id
    LEFT JOIN stanze AS s ON t.stanzaid=s.id
    LEFT JOIN users AS u ON p.userid=u.id
    LEFT JOIN users AS uu ON t.userid=uu.id
    WHERE (p.pdata>='1165618800' OR t.tdata>='1165618800') AND s.privato='0' AND pp.pdata>='1165618800'
    GROUP BY t.id ORDER BY ultimadata DESC LIMIT 1
    Tutto ok, tranne che se sono stati scritti solo posts, avendo limitato ad 1, mi conta sempre 1 topic, anche se non ne è stato scritto nessuno. Praticamente quello che estrae è quello che restituisce per determinare l'ultimo messaggio scritto (sia esso un post che sia un topic, ndr). Il numero dei posts invece è sempre esatto.
    Ho paura che non sia possibile fare ciò con una sola query, ma prima di arrendermi voglio chiedere a voi.


    Ciaooooooo!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Guarda, francamente non so se sia possibile o meno.
    Ad istinto mi viene da dire sicuramente di no, ma bisognerebbe pensarci un po' prima di esserne certi.

    Quello che è certo è che la tua query è ben strana: perché compare due volte la tabella posts, di cui una in cross join con i topics?

  3. #3
    Originariamente inviato da luca200
    ...perché compare due volte la tabella posts, di cui una in cross join con i topics?
    Sì, perchè in tutto devo estrapolarmi: il totale dei topics del giorno, il totale dei posts del giorno e tutte le info dell'ultimo messaggio (post o topic) del giorno.
    Quindi l'alias 'pp' lo uso per contare il totale dei posts del giorno, e l'altro ('p') lo uso per estrarre l'ultimo post scritto del giorno (poi lo ordino con l'ultimo topic del giorno e scelgo quello più recente).
    Lo stesso metodo ho provato ad usarlo per il numero dei topics, ma non risolve il problema.

    Per il problema del topic, aspetto le opinioni di altri, se non risolverò come chiedo, ho altri espedienti da utilizzare

    Grazie lo stesso.


    Ciaooooooo!!!!!!!!!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  4. #4
    azz! già in terza pagina!
    Io uppo!


    Ciaooooooo!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  5. #5
    :master:


    Ciao!!!!!!!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  6. #6
    E comunque....


    Ciao!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    E' inutile continuare, non ti risponderà più nessuno.
    Ti ho già fatto notare che hai una cross join nella query, ma hai tutta l'aria di non averlo nemmeno letto.
    In ogni caso non ha senso volere estrarre due dati distinti da due tabelle diverse con una sola query.

  8. #8
    Perchè dici che non l'ho nemmeno letto? Ti ho anche risposto!

    Tu poi dici che non ha senso voler estrarre due dati distinti da due tabelle con una sola query, ma la mi situazione è leggermente differente, primo perchè io riesco ad estrarre due dati distinti da due tabelle con una sola query, e secondo perchè io ne voglio estrarre tre di dati distinti.

    Cmq ripeto, se alla fine non si riuscirà a trovare una soluzione come l'ho chiesta io, troverò un'altra soluzione.

    Grazie lo stesso.


    Ciao!
    Originariamente inviato da kalamaro
    una volta avevate linkato la pagina di un software per eliminare i ciao! di debug dai post, ho provato nel mio negozio di fiducia a scaffale non lo hanno, vi ricordate il nome?

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.