Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    98

    sql: contare i messaggi di un forum

    Ciao a tutti,

    Ho un problema con sql.. Un blocco mentale..

    Ho tre tabelle di un forum: Sezioni, Messaggi, Risposte.

    Tabella Sezioni: [id, nome, argomento]
    Tabella Messaggi [id, id_sezione, titolo, autore, contenuto]
    Tabella Risposte [id, id_messaggio, titolo, autore, contenuto]

    Ora: riesco a contare i messaggi in una sezione facendo:

    "SELECT id_sezione, count(*) FROM Messaggi GROUP BY id_sezione"

    Vorrei però contare anche le risposte contenute in una sezione. Lo sapevo fare, ci ho pure fatto un esame (passato con 24) ma in questo momento ho un vuoto di memoria.. Qualcuno mi può dare una mano? Grazie a tutti.

  2. #2
    Beh...il fatto che ci hai fatto un esame non indica che tu lo sappia fare...specie se hai un vuoto di memoria

    Tabella Sezioni: [id, nome, argomento]
    Tabella Messaggi [id, id_sezione, titolo, autore, contenuto]
    Tabella Risposte [id, id_messaggio, titolo, autore, contenuto]
    Puoi procedere in due modi:
    1) Isolare i messaggi di una specifica sezione e poi ricreare la relazione tra i messaggi rimasti e le Risposte
    2) Ricreare la relazione tra Messaggi e Risposte e poi isolare le risposte appartenenti ad una determinata sezione


    In ogni caso questo:
    SELECT msg.id_sesione.*, COUNT(post.id)
    FROM Messaggi AS msg
    JOIN Risposte AS post ON msg.id = post.id_messaggio
    WHERE msg.id_sezione = '$idsezione'
    GRUOP BY msg.id_sezione
    credo debba funzionare...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    98
    Giusto il join! E perchè non mi veniva in mente? Mah.. Grazie mille per la risposta!

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.