Mysql
 sql >> Database >  >> RDS >> Mysql

SQL:seleziona Chiavi che non esistono in una tabella

Possiamo usare MySQL non in opzione.

SELECT id
FROM table_one
WHERE id NOT IN ( SELECT id FROM table_two )

Modificato

Se stai ricevendo il sorgente da un file CSV quindi puoi semplicemente inserire questi valori direttamente come:

Presumo che i CSV siano come 1,2,3,...,n

SELECT id
FROM table_one
WHERE id NOT IN ( 1,2,3,...,n );

MODIFICA 2

Oppure, se vuoi selezionare il contrario, puoi usare mysqlimport per importare i dati nella tabella temporanea nel database MySQL e recuperare il risultato ed eliminare la tabella.

Come:

Crea tabella

CREATE TABLE my_temp_table(
   ids INT,
);

carica il file .csv

LOAD DATA LOCAL INFILE 'yourIDs.csv' INTO TABLE my_temp_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(ids);

Selezione dei record

SELECT ids FROM my_temp_table
WHERE ids NOT IN ( SELECT id FROM table_one )

tavolo da lancio

DROP TABLE IF EXISTS my_temp_table