通过openquery从MySQL数据库中提取一些信息:
select *
from foo
where bar not in (select bar from foobar)
现在,如果我用硬连线数字替换子查询,它工作正常,但我有近1000个数字我需要排除。我无法弄清楚这一点;两个查询都可以自行运行。错误总是告诉我在'foobar的选择栏'中有语法错误''
感谢
编辑:
这是错误:
[MySQL][ODBC 3.51 Driver][mysqld-4.0.20-log]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select bar from foobar)' at line 3".
答案 0 :(得分:3)
问题可能是以下一种或多种情况:
可能来自MYSQL4.0的BUG(请查看HERE获取该信息)。
使用NOT EXISTS
代替NOT IN
,如下所示:
select *
from foo
where bar NOT EXISTS (select bar from foobar WHERE foobar.bar = foo.bar)
答案 1 :(得分:1)
你的foobar子查询中是否有任何NULL?这会弄乱你的方法。如果是,请在SQL "select where not in subquery" returns no results
了解更多详情