Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [mysql] DELETE con due tabelle

    Ciao. Vorrei eliminare delle righe di una tabella dove un condizione è presa anche da un'altra tabella.

    TAB Presenze >> id id_nominativo DataPresenze
    TAB Nominativi >> id id_squadra

    Nella mia logica è così
    Codice PHP:
    DELETE Presenze
    FROM Nominativi
    Presenze
    WHERE Nominativi
    .id_squadra='2' AND Presenze.DataPresenza='2024-09-12' 
    ma non funziona!! Perchè cancella tutte le righe senza considerare il filtro id_squadra=2. Eliminando purtroppo anche le presenze nello stesso giorno anche degli utenti appartenenti a id_squadra=1 (e 3 e 4 etc. etc.) che erano presenti altrove nello stesso giorno...

    Come potrei sistemare la mia query?
    Ultima modifica di ricman; 26-11-2024 a 12:35
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    devi mettere le tabelle in JOIN. Prepara una SELECT con le tabelle in JOIN, con la tua selezione e verifica che ti riporti le righe che vorresti cancellare; poi sotituisci SELECT con DELETE

    ctrl qui https://www.mysqltutorial.org/mysql-...l-delete-join/

  3. #3
    Ho provato a sostituire il SELECT col DELETE (togliendo l'asterisco prima del FROM)
    Codice PHP:
    DELETE FROM PresenzeJOIN Nominativi ON Presenze.id_nominativo=Nominativi.idWHERE Presenze.DataPresenza='2024-09-12' 
    Ma mi da errore "Errore di sintassi nella query SQL vicino a 'JOIN Nominativi ON Presenze.id_nominativo=Nominativi.id
    WHERE Presenze.DataPres' linea 2"
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    codice:
    DELETE 
       Presenze, Nominativi
    FROM 
       Presenze JOIN Nominativi 
       ON Presenze.id_nominativo=Nominativi.id
    WHERE 
     Presenze.DataPresenza='2024-09-12'
    facce sape'!

    WOW! 30.000 post tondi tondi

  5. #5
    Prima che io provi... Perchè hai messo "virgola Nominativi"? Nei vari siti leggevo sempre "table1" senza la virgola table2
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  6. #6
    non so dove abbia guardato tu ma la sintassi è quella con la virgola per separare le tabelle
    cfr https://www.ecosia.org/search?q=mysql+delete+join

  7. #7
    E da quale tabella vengono eliminate le righe? Da T1 (Presenze, nel mio caso) da T2 (Nominativi) ?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  8. #8
    da tutte e due. se serve solo da una, dichiara solo quella

  9. #9
    Quote Originariamente inviata da optime Visualizza il messaggio
    da tutte e due. se serve solo da una, dichiara solo quella
    E che è ciò che a e o fatto..... Avevo dichiarato solo la tab Presenze..
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

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.