Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL :sélectionnez des clés qui n'existent pas dans une table

On peut utiliser MYSQL pas en option.

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

Modifié

Si vous obtenez la source à partir d'un fichier csv alors vous pouvez simplement avoir à mettre ces valeurs directement comme :

Je suppose que le CSV est comme 1,2,3,...,n

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

MODIFICATION 2

Ou Si vous souhaitez sélectionner l'inverse, vous pouvez utiliser mysqlimport pour importer des données dans une table temporaire dans la base de données MySQL et récupérer le résultat et supprimer la table.

Comme :

Créer un tableau

CREATE TABLE my_temp_table(
   ids INT,
);

charger le fichier .csv

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

Sélectionner des enregistrements

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

déposer un tableau

DROP TABLE IF EXISTS my_temp_table