我正在尝试使用以下SELECT语句在我使用它之后制作DELETE语句。
基本上表“列表”有一堆需要删除的记录。如果在地址表中找不到EmpNo,那么我想从列表中删除该记录。我一直得到一个无效的语法。我做错了什么?
SELECT A.*
FROM address A
LEFT JOIN listing B
USING (EmpNo)
WHERE B.EmpNo IS <> A.EmpNo
答案 0 :(得分:2)
在此处删除IS
关键字:
WHERE B.EmpNo IS <> A.EmpNo
应该是:
WHERE B.EmpNo <> A.EmpNo
如果EmpNo
在两个表中都存在同名,USING
将在那里正常工作。否则,您可以使用ON
更加明确:
FROM
address A
LEFT JOIN listing B
ON A.EmpNo = B.EmpNo
要在A
中找不到与B
无匹配的记录,请测试B.EmpNo IS NULL
而不是B.EmpNo <> A.EmpNo
。
WHERE B.EmpNo IS NULL