Tôi có 2 bảng (srcTable1 & destTable) có các lược đồ giống nhau. Tôi đang cố gắng để sao chép tất cả các hàng từ srcTable để destTable và bỏ qua các bản sao. Tôi nghĩ rằng tôi chỉ có thể thêm một mệnh đề WHERE với một truy vấn phụ mà sẽ cho tôi chỉ những hàng không trùng lặp. Tuy nhiên, nó dường như không hoạt động. Tôi không nhận được bất kỳ hàng nào được chèn vào hoặc được chọn.Sao chép các hàng từ bảng này sang bảng khác, bỏ qua các bản sao
INSERT INTO destTable
SELECT * FROM srcTable
WHERE NOT EXISTS(SELECT * FROM destTable)
Tôi nhận ra tôi có thể làm một cái gì đó như thế này:
INSERT INTO destTable
SELECT * FROM srcTable
WHERE MyKey IN (SELECT MyKey FROM destTable)
Tuy nhiên, bảng của tôi có nhiều khóa và tôi không thể nghĩ về cách bạn có thể làm điều này với nhiều phím.
Bất kỳ ý tưởng nào tôi đang làm sai hoặc bạn có ý tưởng nào tốt hơn không?
Bạn có thể là một chút cụ thể hơn về những gì bản sao bạn lo lắng về. Có phải lo ngại về việc chèn các hàng từ nguồn đã ở đích, các hàng được sao chép trong nguồn hoặc cả hai? – JohnFx
Bạn đang sử dụng mysql hoặc mssql? –