Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL:Wählen Sie Schlüssel aus, die in einer Tabelle nicht vorhanden sind

Wir können MYSQL nicht in Option verwenden.

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

Bearbeitet

Wenn Sie die Quelle aus einer csv-Datei erhalten dann müssen Sie diese Werte einfach direkt setzen wie:

Ich gehe davon aus, dass die CSV wie 1,2,3,...,n

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

BEARBEITEN 2

Oder wenn Sie andersherum auswählen möchten, können Sie mysqlimport verwenden um Daten in eine temporäre Tabelle in der MySQL-Datenbank zu importieren und das Ergebnis abzurufen und die Tabelle zu löschen.

Wie:

Tabelle erstellen

CREATE TABLE my_temp_table(
   ids INT,
);

CSV-Datei laden

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

Datensätze auswählen

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

Tisch löschen

DROP TABLE IF EXISTS my_temp_table