Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    106

    Unire risultati di due tabella separate

    E' una situazione un pò complicata ma proverò a descriverla


    ho due tabelle

    AMICIZIE
    (con all'interno i campi)
    id_utente
    id_amici

    AZIONI
    (con all'interno i campi)
    id_mittente
    id_destinatario
    azione

    un possibile contenuto potrebbe essere

    AMICIZIA
    id_utente............id_amici
    1............................3
    1............................4
    1............................5
    2............................5
    2............................6


    AZIONI

    id_mittente.............id_destinatario........... azione
    1...................................2............. ........saluta
    2...................................1............. ........ricambia
    2...................................5............. ........saluta



    detto ho modificato un sistema per far si che vengano visualizzate le azioni dove
    id_mittente e id_destinatario corrisponde a 1
    quindi in questo caso vedo

    id_mittente.............id_destinatario........... azione
    1...................................2............. ........saluta
    2...................................1............. ........ricambia


    il problema e che vorrei integrare in un qualche modo anche la tabella amicizie
    e dire di selezionare le azioni di ID 1 però se ID1 ha un amico (che vede dalla tabella amicizia) visualizzare anche le azioni dell'amico.

    quindi in questo caso il sistema vede che in AMICIZIE c'è questa situazione

    AMICIZIA
    id_utente............id_amici


    1............................5


    allora da azioni oltre ad

    AZIONI

    id_mittente.............id_destinatario........... azione
    1...................................2............. ........saluta
    2...................................1............. ........ricambia


    prende anche
    2...................................5............. ........saluta


    perchè ID_DESTINATARIO corrisponde a un ID che è associato ad 1 in AMICIZIE



    come fare ????

    graziee

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954
    Ciao se ho ben capito:
    codice:
    select *
    from azione
    where 
        (
            id_mittente = 1 or id_destinatario = 1
            or (id_mittente IN
                (select id_amico from amicizia
                where id_utente = 1))
            or (id_destinatario IN
                (select id_amico from amicizia
                where id_utente = 1))
            )
    and exists
        (select 'x'
        from amicizia
        where id_utente = 1)
    Dovrebbe essere una cosa del genere che vuoi visualizzare.

    Ovviamente io ti ho messo la costante 1 come id_utente.
    Un consiglio i nomi di tabelle e campi definiscili al singolare e non al plurale.
    La query te l'ho scritta veloce, quindi vedi se poi la puoi ottimizzare.

    La parte di exists l'ho aggiunta perché se ho ben capito vuoi vedere tutto solo se id 1 ha un'amicizia altrimenti non vuoi vedere nulla. Se così non è togli la parte dell'exists

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