mysql - 我的 SQL 查询 : Error :Unknown column in field list when using CASE WHEN in WHERE clause

标签 mysql

大家好,我是mysql查询的初学者。我在 mysql 中使用此查询时遇到一个错误:

SELECT enquiry.business_id ,enquiry_count ,b.`business_name`,c.`id`
FROM `consumer_guide_enquiry_company` enquiry
INNER JOIN `businesses` b ON  `enquiry`.`business_id`=b.`business_id`
INNER JOIN `consumer_guide_company` c ON c.`business_id`=b.`business_id` 
WHERE CASE 
WHEN enquiry.`business_id` 
IN (
SELECT b.business_id 
FROM `businesses` b,`consumer_guide_company` c 
WHERE b.`business_id`=c.`business_id` AND c.`consumer_guide_id`=1) 
THEN enquiry_count=COUNT(enquiry.enquiry_id) 
ELSE enquiry_count=0 
END
GROUP BY enquiry.business_id

显示错误:“字段列表”中未知列“enquiry_count”

感谢您的帮助

最佳答案

尝试这样

SELECT enquiry.business_id ,case when enquiry_count is NULL then  0 
else enquiry_count end 'enquiry_count'  ,b.`business_name`,c.`id`
FROM `consumer_guide_enquiry_company` enquiry

INNER JOIN `businesses` b ON  `enquiry`.`business_id`=b.`business_id`
INNER JOIN `consumer_guide_company` c ON c.`business_id`=b.`business_id` 

LEFT JOIN (SELECT b.business_id,count(*) as enquiry_count FROM `businesses`
b,`consumer_guide_company` c WHERE b.`business_id`=c.`business_id` AND  
c.`consumer_guide_id`=1 group by b.business_id) as tt 
ON enquiry.`business_id`=tt.b.business_id
GROUP BY enquiry.business_id

关于mysql - 我的 SQL 查询 : Error :Unknown column in field list when using CASE WHEN in WHERE clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853588/

相关文章:

php - 当在不同页面上单击 anchor 标记时,如何更改 php 脚本中的 PHP 变量?

MYSQL - 使用连接删除查询

php - SQL 查询以从通配符列等于值的所有表中选择所有行

mysql - MySQL:查询ID中以逗号分隔的条目

mysql - MySQL 加入问题

MySQL 按日期范围查询选择 - 意外输出

php - 使用 php 创建多个表单插入并将其输入到 mysql

mysql - 使用 OR 时的 SQL 性能问题

php - 使用 CodeIgniter 以日期格式计算数据库中每月、每年的日期

mysql - Influx1.2(或0.9+)多个测量之间的 JOIN