在Mysql语句中运行子查询

时间:2016-06-21 18:54:45

标签: mysql

我得到了以下查询,但它无效。任何帮助表示赞赏。

mysql_query("SELECT * FROM 
      (SELECT * FROM Names WHERE suffix='1' AND word!='$main_suffix' ORDER BY votes DESC LIMIT 15)

     ORDER BY Rand() LIMIT 3");

2 个答案:

答案 0 :(得分:1)

所有子选择都需要别名:

mysql_query("SELECT * FROM (
       SELECT * FROM Names 
       WHERE suffix='1' AND word!='$main_suffix' 
       ORDER BY votes DESC LIMIT 15) 
     ) YourAliasName
     ORDER BY Rand() LIMIT 3");

此外,请勿使用mysql_query,而是使用MySQLi或PDO。

答案 1 :(得分:0)

您必须添加别名,例如:as as at subselect

mysql_query("SELECT * FROM 
                (SELECT * 
                FROM Names 
                WHERE suffix='1' 
                AND word!='$main_suffix' 
                ORDER BY votes DESC LIMIT 15) as t
            ORDER BY Rand() LIMIT 3");