Tôi thực sự miễn cưỡng đăng bài này bởi vì tôi cảm thấy đây là vấn đề phổ biến, nhưng dường như tôi không thể tìm ra câu trả lời áp dụng cho tình huống này ... (có thể tôi chỉ là một googler thực sự xấu).Xóa dựa trên khóa tổng hợp từ một bảng khác
Tôi có hai bảng giống hệt nhau (cột khôn ngoan, không phải dữ liệu), table1 và table2. Tôi muốn xóa các bản ghi trong bảng 1 trong đó khóa tổng hợp (col1, col2) tồn tại trong cả hai bảng. Đây là những gì tôi có, mà có vẻ đúng với tôi, nhưng là ném một lỗi.
DELETE FROM Table1
WHERE (**Col1**, Col2) IN
(SELECT Col1, Col2
FROM Table1 a
JOIN Table2 b
ON a.Col1 = b.Col1
AND a.Col2 = b.Col2)
Lỗi:
Msg 4145, Level 15, State 1, Line 212 An expression of non-boolean type specified in a context where a condition is expected, near ','.
tôi đã đặt hai *
xung quanh phần mã trong đó có 'squiggles lỗi Red'.
Tôi tin đây là SQL-SERVER? – gdoron
Có, xin lỗi. Nên cụ thể hơn. Ở đây tại nơi làm việc, chúng tôi chỉ đề cập đến SQL-SERVER như SQL và Oracle như Oracle. – Jeff
Vì Oracle là rất nhiều "cũ" hơn sql-server, quy ước kỳ lạ nhưng ... nếu nó làm cho ông chủ của bạn hạnh phúc và bạn phong phú hơn, tại sao không! – gdoron