使用php视图上的count的MySQL查询

| 我有一个查询:
$result = mysql_query(\"CREATE VIEW temporary(IngList) AS (
                         SELECT DISTINCT (r1.Ingredient) 
                           FROM recipes r1, 
                                recipes r2 
                          WHERE r1.Country = \'$temp\' 
                            AND r2.Country = \'$temp2\' 
                            AND r1.Ingredient = r2.Ingredient) 
                       SELECT COUNT(*) FROM temporary\");
我希望查询创建一个称为临时的视图,并使其返回该视图中临时行数的计数。我知道这段代码无需ѭ1即可工作,因为我检查了数据库并创建了视图。 但是这段代码会引发错误:   您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的\'SELECT COUNT(*)FROM Temporary \'附近使用 我检查了语法,这似乎是正确的。似乎是问题所在,因为它很令人沮丧。     
已邀请:
从mysql_query文档中:   mysql_query()发送一个唯一的查询(不支持多个查询)... 您无法创建视图,并在单个mysql_query中从视图中进行选择。该视图是不必要的:
$sql = sprintf(\"SELECT COUNT(DISTINCT r1.Ingredient) 
                  FROM recipes r1
                 WHERE r.country = \'%s\'
                   AND EXISTS(SELECT NULL
                                FROM recipes r2 
                               WHERE r2.Country = \'%s\' 
                                 AND r1.Ingredient = r2.Ingredient)\",
                $temp, $temp2);

$result = mysql_query($sql);
    
对于初学者,您有两个声明。您正在编写的内容看起来更像是一个存储过程。即使有效,在第一条语句的末尾也需要使用分号。完成后,另一条语句在某处说“ DROP VIEW ....”。 临时视图有点不合时宜。我找不到对“创建视图临时”的任何引用。还是要创建一个带有参数的名为临时的视图?视图不带参数。 我认为您可以通过半简单的SQL语句获得所需的内容,例如: $结果= mysql_query(
\"SELECT COUNT(DISTINCT r1.Ingredient)
 FROM recipes r1
 JOIN recipes r2 ON r1.Ingredient = r2.Ingredient
 WHERE r1.Country = \'$temp\' 
     AND r2.Country = \'$temp2\'\");
    

要回复问题请先登录注册