postgreSQL中not exists语句错误的问题
来自搜搜问问中的一个提问:
问题标题:为什么这个SQL语句在postgresql没有效果
问题内容:
SELECT name FROM table1
WHERE NOT EXISTS
(SELECT name FROM table2)
我就是想比对一下两个表中的数据 实现查询出在一个表中存在但是在另外一个表中不存在的数据 我用的上面那个语句查询应该是没有问题的呀 在SQL2000中都能正常使用 为什么 在postgresql中就查询不出结果了呢 那请问在postgresql中那么怎么查询呢?
问题回答:
语法错误:
SELECT name FROM table1
WHERE NOT EXISTS (SELECT name FROM table2 where 这里写table1和table2的约束关键才行)
如果不写约束 NOT EXISTS (..)每次都不成立 因为table2中有数据
继续追问:where 后面的约束怎么写 本来table2中就有数据嘛 不然怎么做比对呢?
补充回答: SELECT name FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 where name=table1.name)
问题总结:在使用postgresql的时候我们总是会碰到一些语法错误,还需要多学习sql标准。