Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216

    HAVING quest HELP

    buona sera
    ho di nuovo bisogno del vostro aiuto...
    vi spiego brevemente:

    SELECT utenti.username, post.titolo, post.data
    FROM utenti RIGHT JOIN post ON post.id_utente = utenti.id_utente
    WHERE post.id_room = colname
    ORDER BY post.data

    questa quest funziona, e mi estrae:
    TITOLO USERNAME DATA

    ora a questo devo aggiungere un altro campo che è il totole, per ogni post, delle risposte date.
    quindi sarà una cosa del genere:
    TITOLO USERNAME DATA N°RISPOSTE

    io ho provato più volte e con diverse soluzioni ma nessuna di queste funzionanti, l'ultima che a mio parere mi sembra quella che ci si avvicina di più è questa:

    SELECT COUNT(risposte.id_post) as risposteID, post.id_post as postID
    FROM risposte, post
    GROUP BY risposte.id_post

    (ho fatto un'altra quest per provare se mi dava tutti gli id_post con la somma, rispettiva, delle risposte)

    cosa vi viene in mente???

  2. #2
    non so cosa sia una "quest", ma la sezione è errata

    sposto nella sezione corretta
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    ops volevo scrivere query

  4. #4
    un raggruppamento rende solo un record per ogni id_post. E rende il record che trova per primo fisicamente scritto nella tabella. Quindi nienti lista con il group by

    Potresti fare una query separata per il solo count().

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    Originariamente inviato da piero.mac
    un raggruppamento rende solo un record per ogni id_post. E rende il record che trova per primo fisicamente scritto nella tabella. Quindi nienti lista con il group by

    Potresti fare una query separata per il solo count().
    guarda questa fin'ora è la soluzione che ci si avvicina di più:

    codice:
    SELECT post.id_post, COUNT(risposte.id_post ) AS NRisp, SqU.* , post.titolo, post.data 
    FROM 
            (SELECT utenti.username 
             FROM utenti JOIN post ON utenti.id_utente = post.id_utente
            ) AS SqU, 
    post JOIN risposte ON risposte.id_post = post.id_post
    WHERE post.id_room = "1"
    GROUP BY risposte.id_post
    ORDER BY post.data DESC
    ma il punto è che a me servono tutti i post sia quelli in cui ci sono delle risposte sia in quelli no...
    in più mi il COUNT mi da un risultato sbagliato; tipo se c'è una risposta mi restituisce "8"

    che ne dici????

  6. #6
    che db usi? andrebbe indicato...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    MySQL

    installato con APACHE

  8. #8
    ... post LEFT JOIN risposte ...

    così prendi anche i post senza risposta

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    mmm...
    non va!
    conta ma il risultato non è giusto e poi mi visualizza sono 2 post mente ce ne sono 12...

  10. #10
    ma se prendessi tutti i titoli username e data e per ognuno quando lo stampi effettui una query che conta quante risposte ci sono su quello? sarebbe molto più semplice da "toccare" in seguito. Altrimenti dovresti fare un SUB-QUERY per fare tutto in una.

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