有条语句如下:
 SELECT aaa.iii, aaa.nnn, (
SELECT sum( bbb.qqq )
FROM bbb
WHERE bbb.aaii = aaa.iii
)
FROM aaa 
我用phpMyAdmin操作MYSQL,
这条语句在aaa表里面运行SQL可以正确执行,
但是在我的aaa所在的数据库里面运行SQL确显示如下错误:
**************************************************************
SQL 查询: 编辑SHOW KEYS FROMMySQL 返回:文档
#1064 - 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 '' at line 1 
**************************************************************
在网页中用PHP连接执行上述语句也显示这个错误,
我是php+mysql初学,请问给我高手,这是怎么回事?

解决方案 »

  1.   

    MySQL 5.1 中支持如下语法。SELECT (SELECT s1 FROM t2) FROM t1;
    理论上从 4.1 起就支持了,你的mysql版本是多少?
      

  2.   

    Apache Web Server Version 2.2.8PHP Script Language Version 5.2.6MySQL Database Version 5.0.51bphpMyAdmin Database Manager Version 2.10.3
      

  3.   

    可以执行,但是只能在phpMyAdmin的aaa表的接面里面的sql里可以,
    但是php连接用网页来执行就显示那些错误,
    为什么呢,版本低了?非要装5.1??
      

  4.   


    那应该不是mySQL的问题了,估计是你的PHP代码中的问题。调试一下把PHP生成的SQL语句贴出来看一下。特别注意一下空格。
      

  5.   

    我就少写了一句话又误会了,
    不光php页面出错,
    我用phpMyAdmin操作,
    在我的aaa所在的数据库里面运行SQL,显示错误,

    但是点击进aaa表页面下,运行SQL,就正常,
    提示错误是SHOW KEYS FROM 
    原来的语句是:
    SELECT aaa.iii, aaa.nnn, (
    SELECT sum( bbb.qqq )
    FROM bbb
    WHERE bbb.aaii = aaa.iii
    )
    FROM aaa 
    我在子选择里面加入了aaa,改成了:
    SELECT aaa.iii, aaa.nnn, (
    SELECT sum( bbb.qqq )
    FROM bbb,aaa
    WHERE bbb.aaii = aaa.iii
    )
    FROM aaa 
    虽然数据不是我要的,但是能正常运行,
    到底怎么回事啊
      

  6.   

    SELECT aaa.iii, aaa.nnn, ( 
    SELECT sum( bbb.qqq ) 
    FROM bbb 
    WHERE aaa.iii = bbb.aaii 

    FROM aaa 换个顺序试一下,应该是MySQL的一个bug