Aiuto per una query di eliminazione

Jizzy

Nuovo Utente
4 Lug 2008
15
0
1
Chiedo lumi per come impostare una query... mi sto accingendo da poco al pho mysql e spero di poter risolvere.
Ho nel database due tabelle.
La tabella A contiene una serie di campi tra cui il campo indirizzo email.
La tabella B che chiameremo black-list contiene una serie di indirizzi email.

Quel di cui ho bisogno è creare una query che mi elimini dalla tabella A tutte le righe dove c'è un indirizzo email contenuto nella tabella B
Grazie per l'aiuto
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la query potrebbe essere cosi
Codice:
DELETE FROM tabellaA 
            WHERE email IN (
                  SELECT email FROM tabellaB
                  )
testala
 

Jizzy

Nuovo Utente
4 Lug 2008
15
0
1
Grazie mille, funziona bene
Salve, a distanza di tempo ho ritrovato questo mio vecchio post.

Sembra che la query con l'aggiornamento al php 5.4.26 non funzioni più.

Non dà errore però non esegue la query. O meglio dice ricevo il messaggio che la query è stata eseguita ma non cancella mai nulla. Ho verificato invece avrebbe dovuto procedere con le eliminazioni.
Chiedo lumi grazie
 

marino51

Utente Attivo
28 Feb 2013
2.951
171
63
Lombardia
quanto suggerito da criric è sicuramente funzionante,

in ogni caso, controlla così,
Codice:
select distinct A.email from tabellaA A 
inner join tabellaB B
on A.email = B.email
order by A.email
se tabellaB fosse estremamente grande e contenesse anche doppioni,
per ridurre il numero di elementi selezionati
(sperando che su tabellaB ci sia un indice per email)
puoi modificare la select con,

Codice:
DELETE FROM tabellaA 
  WHERE email IN (
    SELECT distinct email FROM tabellaB
      where tabellaB.email = tabellaA.email
  )
se nel frattempo non avessi risolto, posta il codice che esegue la delete
ciao
Marino

ps lascerei ad un passo successivo la versione
 

Jizzy

Nuovo Utente
4 Lug 2008
15
0
1
Vi ringrazio. Ho risolto ed andava bene anche la prima query.
Il problema era dovuto al mio editor che con il copia/incolla codificava gli apici dei campi in modo non corretto.
Sono alle prime armi e questi sono errori da principiante.