mysql版本导致的查询问题

数据库查询时出了个以前没见过的问题:

sql语句:

SELECT
	question.id AS 'question.id',
	question.company_id AS 'question.company_id',
	question.robot_id AS 'question.robot_id',
	question.category_id AS 'question.category_id',
	question.content AS 'question.content',
	question.type AS 'question.type',
	question.available_time_type AS 'question.availableTimeType',
	question.start_time AS 'question.start_time',
	question.end_time AS 'question.end_time',
	question.is_switch_staff AS 'question.is_switch_staff',
	question.suggest_type AS 'question.suggest_type',
	question.keyword AS 'question.keyword',
	question.session_cnt AS 'question.session_cnt',
	question.create_time AS 'question.create_time',
	question.update_time AS 'question.update_time',
	question.update_time_biz AS 'question.update_time_biz',
	similarQuestion.id AS "similar_id",
	similarQuestion.content AS "similar_content",
	answer.id AS 'answer.id',
	answer.content AS 'answer.content',
	answer.type AS 'answer.type' 
FROM
	question_question question
	LEFT JOIN answer_answer answer ON answer.question_id = question.id
	LEFT JOIN question_question_channel questionChannel ON questionChannel.question_id = question.id
	LEFT JOIN question_question similarQuestion ON similarQuestion.delete_flag = 0 
	AND similarQuestion.main_id = question.id 
	AND similarQuestion.type = 2 
WHERE
	1 = 1 
	AND question.delete_flag = 0 
	AND question.robot_id = 123 
	AND question.category_id IN ( 424, 423 ) 
	AND question.type != 2 
GROUP BY
	question.id 
ORDER BY
	similarQuestion.id 
	LIMIT 0,
	10

执行报错,错误信息:
1055 - Expression #17 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘udesk_km.similarQuestion.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, Time: 0.001000s

百度翻译如下:
1055-select list的表达式17不在group by子句中,并且包含非聚合列’udesk_km.similarQuestion.id’,该列在功能上不依赖group by子句中的列;这与sql_mode=only_full_group_by不兼容

猜测是数据库版本问题。

将sql改为:

SELECT
	question.id AS 'question.id',
	question.company_id AS 'question.company_id',
	question.robot_id AS 'question.robot_id',
	question.category_id AS 'question.category_id',
	question.content AS 'question.content',
	question.type AS 'question.type',
	question.available_time_type AS 'question.availableTimeType',
	question.start_time AS 'question.start_time',
	question.end_time AS 'question.end_time',
	question.is_switch_staff AS 'question.is_switch_staff',
	question.suggest_type AS 'question.suggest_type',
	question.keyword AS 'question.keyword',
	question.session_cnt AS 'question.session_cnt',
	question.create_time AS 'question.create_time',
	question.update_time AS 'question.update_time',
	question.update_time_biz AS 'question.update_time_biz',
	similarQuestion.id AS "similar_id",
	similarQuestion.content AS "similar_content",
	answer.id AS 'answer.id',
	answer.content AS 'answer.content',
	answer.type AS 'answer.type' 
FROM
	question_question question
	LEFT JOIN answer_answer answer ON answer.question_id = question.id
	LEFT JOIN question_question_channel questionChannel ON questionChannel.question_id = question.id
	LEFT JOIN question_question similarQuestion ON similarQuestion.delete_flag = 0 
	AND similarQuestion.main_id = question.id 
	AND similarQuestion.type = 2 
WHERE
	1 = 1 
	AND question.delete_flag = 0 
	AND question.robot_id = 123 
	AND question.category_id IN ( 424, 423 ) 
	AND question.type != 2 
GROUP BY
	question.id,
	similarQuestion.id,
	answer.id 
ORDER BY
	FIELD( question.id, similarQuestion.id )

执行正常!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值