Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的查询出现错误1054 MySql_Mysql_Sql_Cakephp - Fatal编程技术网

我的查询出现错误1054 MySql

我的查询出现错误1054 MySql,mysql,sql,cakephp,Mysql,Sql,Cakephp,我在MySql中运行以下查询 SELECT count(*) FROM `pitches` AS `Pitch` INNER JOIN `business_sectors_pitches` AS `BusinessSector` ON (`BusinessSector`.`pitch_id` = `Pitch`.`id`) LEFT JOIN `investments` AS `Investment` O

我在MySql中运行以下查询

SELECT count(*) 
  FROM `pitches` AS `Pitch` 
        INNER JOIN `business_sectors_pitches` AS `BusinessSector` 
           ON (`BusinessSector`.`pitch_id` = `Pitch`.`id`) 
         LEFT JOIN `investments` AS `Investment` 
           ON (`Investment`.`pitch_id` = `Pitch`.`id`) 
         LEFT JOIN `users` AS `User` 
           ON (`Pitch`.`user_id` = `User`.`id`) 
         LEFT JOIN `loan_pitches` AS `LoanPitch` 
           ON (`LoanPitch`.`pitch_id` = `Pitch`.`id`) 
         LEFT JOIN `equity_pitches` AS `EquityPitch` 
           ON (`EquityPitch`.`pitch_id` = `Pitch`.`id`) 
 WHERE `Pitch`.`status` = 1 
   AND `Pitch`.`required_funding` >= 0 
   AND `Pitch`.`required_funding` <= 1500000 
 GROUP BY `Pitch`.`id` 
having ( (     sum(`Investment`.`amount`) / `Pitch`.`required_funding` >= 0 
           and sum(`Investment`.`amount`) / `Pitch`.`required_funding` <= 1
         )  or sum(`Investment`.`amount`) / `Pitch`.`required_funding` is null 
       )
       and count(`Investment`.`id`) >= 0 
       and count(`Investment`.`id`) <= 200 ;
我发现having需要被where替换,但我无法让它工作

这段代码是从我的Cakephp代码生成的,但我不能让它在mysql客户端中工作

根据@GolezTrol评论第二次尝试

SELECT count(*)    
FROM `pitches` AS `Pitch`          
INNER JOIN `business_sectors_pitches` AS `BusinessSector`             
  ON (`BusinessSector`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `investments` AS `Investment`             
  ON (`Investment`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `users` AS `User`             
  ON (`Pitch`.`user_id` = `User`.`id`)           
LEFT JOIN `loan_pitches` AS `LoanPitch`             
  ON (`LoanPitch`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `equity_pitches` AS `EquityPitch`             
  ON (`EquityPitch`.`pitch_id` = `Pitch`.`id`)   
WHERE `Pitch`.`status` = 1     
  AND `Pitch`.`required_funding` >= 0     
  AND `Pitch`.`required_funding` <= 1500000 
  AND ( ((select sum(amount) from investments group by pitch_id)  / `Pitch`.`required_funding` >= 0             
  AND (select sum(amount)  from investments group by pitch_id) / `Pitch`.`required_funding` <= 1)  
  OR (select sum(amount)  from investments group by pitch_id) / `Pitch`.`required_funding` is null);

旁注:您的风险除以零,因为您除以Pitch.required_funding,根据where条件,该字段>=为零。旁注:允许您在SQL语句中有中断。400个字符的行实际上不可读。注意:您仅按pitch.id和pitch.id进行分组,但未选择pitch.id。如果这个查询有效,那么您将有一系列计数,而不可能知道它们属于哪个音高。我认为您可以通过向group by子句添加Pitch.required_资金来解决您的问题,但我不确定这是否符合您的要求,关于我上面的评论。实际上我想要的是计算行数,如果我们**选择***你的最后一条评论来添加音调。必需的代码不会中断,但它不会带来我想要的结果。
SELECT count(*)    
FROM `pitches` AS `Pitch`          
INNER JOIN `business_sectors_pitches` AS `BusinessSector`             
  ON (`BusinessSector`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `investments` AS `Investment`             
  ON (`Investment`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `users` AS `User`             
  ON (`Pitch`.`user_id` = `User`.`id`)           
LEFT JOIN `loan_pitches` AS `LoanPitch`             
  ON (`LoanPitch`.`pitch_id` = `Pitch`.`id`)           
LEFT JOIN `equity_pitches` AS `EquityPitch`             
  ON (`EquityPitch`.`pitch_id` = `Pitch`.`id`)   
WHERE `Pitch`.`status` = 1     
  AND `Pitch`.`required_funding` >= 0     
  AND `Pitch`.`required_funding` <= 1500000 
  AND ( ((select sum(amount) from investments group by pitch_id)  / `Pitch`.`required_funding` >= 0             
  AND (select sum(amount)  from investments group by pitch_id) / `Pitch`.`required_funding` <= 1)  
  OR (select sum(amount)  from investments group by pitch_id) / `Pitch`.`required_funding` is null);