我一直都不愿意发布此,因为我觉得这是一个常见的问题,但我似乎无法找到适用于这种情况的一个答案......(也许我只是一个非常糟糕的Google员工)。删除基于另一个表中的复合键
我有两个相同的表(逐列,而不是数据),Table 1和Table。我希望删除table1中两个表中存在组合键(col1,col2)的记录。这是我所拥有的,这对我来说似乎是正确的,但却是抛出一个错误。
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)
错误:
Msg 4145, Level 15, State 1, Line 212 An expression of non-boolean type specified in a context where a condition is expected, near ','.
我已经放了两个*
其中有 '红色错误的波浪线' 的代码部分的周围。
我相信这是SQL-SERVER? – gdoron
是的,对不起。应该更具体。在这里,我们只是将SQL-SERVER称为SQL,将Oracle称为Oracle。 – Jeff
因为Oracle比sql-server要“老”许多,但是......如果它让你的老板开心,并且你更富有,为什么不呢? – gdoron