我的查询出现错误1054 MySql
我在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
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);