Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    64

    [mySQL] problemi con update di due tabelle

    Salve a tutti,

    supponiamo di avere due tabelle nomi e indirizzi , di cui fare un update.
    Ad esempio:

    tabella: nomi
    campi: id,nome, delete

    tabella: indirizzi
    campi: id, id_p,indirizzo, delete

    dove id_p serve per la join con id dei nomi, e delete potrà assumere valore 1 e 0.
    Nulla quindi di particolarmente complicato.

    Ora noto il valore dell'id voglio modificare il valore di delete per entrambi le tabelle

    Ad esempio con:
    codice:
    UPDATE nomi p, indirizzi r SET p.delete=1, r.delete=1  WHERE p.id = 3 AND r.id_p = 3
    
    oppure
    UPDATE nomi p, indirizzi r SET p.delete=1, r.delete=1  WHERE p.id = r.id_p AND p.id = 3
    Si la query funziona ma...
    supponiamo di non trovare alcun valore su id_p perché ad esempio non esiste indirizzo per quel nominativo.
    Mi aspetterei che venga comunque effettuato l'update della prima tabella... E invece no! In questo caso nessuna riga viene modificata.

    Qualche idea? Grazie
    Ultima modifica di geggino; 01-06-2014 a 00:01

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da geggino Visualizza il messaggio
    codice:
    UPDATE nomi p, indirizzi r SET p.delete=1, r.delete=1  WHERE p.id = 3 AND r.id_p = 3
    
    oppure
    UPDATE nomi p, indirizzi r SET p.delete=1, r.delete=1  WHERE p.id = r.id_p AND p.id = 3
    Si la query funziona ma...
    supponiamo di non trovare alcun valore su id_p perché ad esempio non esiste indirizzo per quel nominativo.
    Mi aspetterei che venga comunque effettuato l'update della prima tabella... E invece no! In questo caso nessuna riga viene modificata.

    Qualche idea? Grazie
    perchè ti aspetti che avvenga una cosa non indicata nella condizione?

    dovresti agire sulla condizione where...prova qualcosa del genere:

    codice:
    UPDATE nomi p, indirizzi r SET p.delete=1, r.delete=1  WHERE (p.id = 3 AND r.id_p = 3) or (p.id = 3 AND r.id_p  is null)
    ciao

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.