Mysql,NOT EXISTS,SELECT

und*_*oft 0 mysql sql

好吧,如果另一个表中没有行,我试图从一个表中选择行.

我的原始查询是:

SELECT * FROM `jos_datsogallery` as a WHERE a.published = 1 
and a.approved=1 NOT EXISTS (SELECT * FROM `jos_datsogallery_votes`
As v WHERE v.vip=62 AND v.vpic=a.id) ORDER BY a.imgdate DESC
Run Code Online (Sandbox Code Playgroud)

但它一直都在失败.

我做了一些测试并将我的查询缩短为:

SELECT * FROM `jos_datsogallery` WHERE EXISTS (SELECT 1)
Run Code Online (Sandbox Code Playgroud)

应该从jos_datsogallery中选择所有内容作为'EXISTS(SELECT 1)'始终为真.

我试过phpMyAdmin:

1064 - 您的SQL语法有错误.检查与MySQL服务器版本对应的手册,以便在第1行的'EXISTS(SELECT 1)LIMIT 0,30'附近使用正确的语法

怎么了?

MySQL版本:4.0.27

MySQL doc:http://dev.mysql.com/doc/refman/4.1/en/exists-and-not-exists-subqueries.html

Amb*_*ber 5

EXISTS 仅在4.1及更高版本中支持 - 您链接的文档是4.0/4.1的组合文档,因此可能会误导哪些版本实际支持该关键字.

由于您更新了问题以表明您使用的是4.0.x,这就是为什么它不适合您.