Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    61

    [SQL] - Join tra 3 tabelle...

    Chiedo il vostro aiuto, sperando di non aver sbagliato forum, ma non mi pare ci sia una sezione dedicata all'SQL. In caso mi dovessi sbagliare, chiedo di essere spostato alla sezione più opportuna.
    Ho il seguente problema.
    Mi trovo a lavorare con 3 tabelle.
    Forum_Messaggi, Forum_Risposte, Membership.

    FORUM_MESSAGGI
    messaggioID ---->chiave primaria
    autore_messaggio ---->chiave esterna (username in MEMBERSHIP)
    catid

    FORUM_RISPOSTE
    rispostaID
    messaggioID ---->chiave esterna (MessaggioID in FORUM_MESSAGGI)
    autore_risposta ---->chiave esterna (username in MEMBERSHIP)
    data_risposta

    MEMBERSHIP
    username ----->chiave primaria
    descrizione

    Ogni messaggio può avere più risposte ovviamente.
    A me interesserebbe fare una join di questo tipo.

    ESTRARRE TUTTE LE RIGHE IN CUI
    catID è di un certo valore e in cui Membership.username=Forum_Messaggi.autore_messaggi o e in cui
    Forum_Risposte.data_risposta è la più vecchia data tra
    tutti i record in Forum_Risposte in cui
    Forum_Risposte.messaggioID=Forum_Messaggi.messaggi oID.

    Spero di aver detto tutto bene, ma se mi dovessi esser
    sbagliato, ecco qui sotto la rapresentazione tabellare
    di ciò che dovrebbe essere il risultato:

    TABELLA FINALE
    campi: catid - messaggioid - usernameAutoreMessaggio - descrizioneAutoreMessaggio - ultimaRispotaAlMessaggio - autoreUltimaRispostaAlMessaggio - dataUltimaRispostaAlMessaggio

    contorto?
    spero per voi di no.

    grazie mille per l'aiuto che spero mi darete.

    un saluto.

    tranky.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    61
    Cerco di spiegarmi.
    Ho tre tabelle (Membership,Forum_Messaggi,Forum_Risposte).

    -------------------
    Membership
    -------------------
    username (chiave primaria)
    password

    -------------------
    Forum_Messaggi
    -------------------
    messaggioID (chiave primaria)
    autoreMessaggio (chiave esterna)
    titoloMessaggio
    categoriaMessaggio


    -------------------
    Forum_Risposte
    -------------------
    rispostaID (chiave primaria)
    messaggioCorrispondenteID
    autoreRisposta (chiave esterna)


    Supponiamo che si abbia questa condizione
    MEMBERSHIP
    ----------------------------------------------
    username: ciccio, luca , mirco
    password: uno , due , tre

    FORUM_MESSAGGI
    ----------------------------------------------
    messaggioID: 3 , 5 , 7
    autoreMessaggio: ciccio , ciccio, mirco
    titoloMessaggio: ciao , forza , noia
    categoriaMessaggio: 9 , 11 , 17

    FORUM_RISPOSTE
    ----------------------------------------------
    rispostaID: 21 , 8 , 17 , 99
    messaggioCorrispondenteID: 3 , 3 , 7 , 7
    autoreRisposta: luca , mirco , ciccio, mirco
    dataRisposta: 20/07/05, 20/10/05,21/11/06,21/10/06

    Vorrei ottenere da una query una singola tabella così formata.
    Sicuramente si dovranno usare più Join. Ma non so come fare!
    La tabella da ottenere è questa:

    TABELLA_QUERY
    ----------------------------------------------------------------
    AutoreMessaggio: ciccio , ciccio , mirco
    PasswordAutore: uno , uno , tre
    MessaggioID: 3 , 5 , 7
    TitoloMessaggio: ciao , forza , noia
    UltimaRispostAID: 8 , 17 , [[QUESTO E' VUOTO]]
    UltimaRispostaAutore: Mirco , Ciccio , [[QUESTO E' VUOTO]]
    UltimaRispostaData: 20/10/05, 21/11/06 , [[QUESTO E' VUOTO]]

    I campi con su scritto [[QUESTO E' VUOTO]] sono vuoti perchè non
    esistono repliche per questi Messaggi!

    Da notare che la data a cui ci si riferisce in questa tabella è la
    data dell'ultima risposta, quindi probabilmente dovrà essere ottenuta
    con una SELECT TOP 1, ORDER BY ASC.

    Qual è la query che mi permette di ottenere una tabella di questo tipo?
    Spero di non aver sbagliato nulla e di essere stato chiaro.

    Chiedo aiuto.

    tranky.

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.