Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL:Chọn các khóa không tồn tại trong một bảng

Chúng tôi có thể sử dụng MYSQL không có trong tùy chọn.

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

Đã chỉnh sửa

Nếu bạn đang lấy nguồn từ tệp csv thì bạn có thể chỉ cần đặt các giá trị này trực tiếp như:

Tôi giả định rằng CSV giống như 1,2,3, ..., n

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

CHỈNH SỬA 2

Hoặc Nếu bạn muốn chọn theo cách khác thì bạn có thể sử dụng mysqlimport để nhập dữ liệu trong bảng tạm thời trong Cơ sở dữ liệu MySQL và truy xuất kết quả và xóa bảng.

Như:

Tạo bảng

CREATE TABLE my_temp_table(
   ids INT,
);

tải tệp .csv

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

Chọn bản ghi

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

thả bảng

DROP TABLE IF EXISTS my_temp_table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng MySQL với Django - Quyền truy cập bị từ chối đối với người dùng '@' localhost

  2. MySQL SELECT AS kết hợp hai cột thành một

  3. Làm cách nào để thay đổi tất cả các bảng trong cơ sở dữ liệu của tôi thành bộ ký tự UTF8?

  4. Java - Cách lấy tên cột trên Tập kết quả

  5. Có cơ chế nào để tắt chèn vào bảng không?