我正在尝试查找表A中存在的三个列的值和表B中的 Not 的组合。我的代码继续用地址逗号炸开where子句。我该如何解决这个问题?
SELECT a.Address,a.Last_Name_First_Name,a.Actual_Sale_Date
FROM salesdataall a
WHERE a.Address, a.Last_Name_First_Name, a.Actual_Sale_Date
NOT IN (SELECT b.Address,b.Last_Name_First_Name,b.Actual_Sale_Date
FROM salesdataun b)
ERROR: syntax error at or near ,
LINE 3: WHERE a.Address,a.Last_Name_First_Name,a.A...
^
答案 0 :(得分:2)
你忘记了括号:
SELECT a.Address,a.Last_Name_First_Name,a.Actual_Sale_Date
FROM salesdataall a
WHERE (a.Address, a.Last_Name_First_Name, a.Actual_Sale_Date)
NOT IN (SELECT b.Address,b.Last_Name_First_Name,b.Actual_Sale_Date
FROM salesdataun b)
这是一种罕见的情况,其中将括号放在列列表周围是有意义的。
答案 1 :(得分:1)
你可以通过加入来实现:
SELECT a.Address,a.Last_Name_First_Name,a.Actual_Sale_Date
FROM salesdataall a
LEFT JOIN salesdataun b
ON a.Address = b.Address AND
a.Last_Name_First_Name = b.Last_Name_First_Name AND
a.Actual_Sale_Date = b.Actual_Sale_Date
WHERE a.Address IS NULL