Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    185

    [MySQL] Query complessa: not in - inner join ?

    Ho 3 tabelle:

    1 - messaggi;
    < id
    < id_mittente
    < id_destinatario
    < testo

    2 - messaggi_cancellati;
    < id
    < id_messaggio
    < id_utente
    < cancellato

    3 - utenti;
    < id
    < nome

    Le tabelle 1 e 2 sono legate messaggi.id ->messaggi_cancellati.id_messaggio

    Nella tabella 3, il valore id lo posso ritorvare in messaggi.id_mittente
    e messaggi.id_destinatario ed anche messaggi_cancellati.id_utente


    Ora io dovrei estrarre dalla tabella messaggi, tutti i record che con le
    seguenti caratteristiche:
    1 - non figurano nella tabella messaggi_cancellati
    2 - per i quali messaggi.id_mittente != messaggi_cancellati.id_utente
    3 - per i quali messaggi.id_mittente = 'VALORENOTO'

    Ho provato, senza successo con:

    SELECT messaggi.*, messaggi_cancellati.*, utenti.*
    FROM messaggi, messaggi_cancellati, utenti
    WHERE messaggi.id NOT IN (select id_messaggio from messaggi_cancellati)
    and messaggi.id_mittente = '3' ORDER BY messaggi.id desc";

    La query deve anche contenere il campo utenti.id e utenti.nome per i
    quali messaggi.id_destinatario = utenti.id

    Come fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    268
    select * from tb_messaggi as a
    left join tb_mesaggi_cancellati as b on a.id<>b.id_messaggio
    left join tb_utenti as u on a.id_utente=u.id
    where id_utente =3333


    al limite gioca un po con le relazioni delle join

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.