Mysql 我的查询中的分组错误
我想知道是否有人能解释一下下面的错误。sql在本地运行良好,但我在远程收到以下错误 SQL查询:Mysql 我的查询中的分组错误,mysql,sql,Mysql,Sql,我想知道是否有人能解释一下下面的错误。sql在本地运行良好,但我在远程收到以下错误 SQL查询: $inQ = " SELECT category.category_name, GROUP_CONCAT(subject.subjects SEPARATOR ', ') AS subjects FROM category INNER JOIN tutor_category_subject ON tutor_category_subject.category_id = ca
$inQ = "
SELECT category.category_name, GROUP_CONCAT(subject.subjects SEPARATOR ', ') AS subjects
FROM category
INNER JOIN tutor_category_subject ON tutor_category_subject.category_id = category.category_id
INNER JOIN subject ON tutor_category_subject.subject_id = subject.subject_id
WHERE tutor_category_subject.tutor_id = $tutorId AND tutor_category_subject.category_id = $categoryId
";
MySQL说:
#1140-如果没有GROUP BY子句,则在没有GROUP列的情况下混合GROUP列(MIN()、MAX()、COUNT()、…)是非法的
正如错误所说:如果没有GROUPBY子句,就不能混合group列和非group列。尝试添加一个:
SELECT category.category_name, GROUP_CONCAT(subject.subjects SEPARATOR ', ') AS subjects
FROM category
INNER JOIN tutor_category_subject ON tutor_category_subject.category_id = category.category_id
INNER JOIN subject ON tutor_category_subject.subject_id = subject.subject_id
WHERE tutor_category_subject.tutor_id = $tutorId AND tutor_category_subject.category_id = $categoryId
GROUP BY category.category_name
我相信你想要这个:
SELECT category.category_name, GROUP_CONCAT(subject.subjects SEPARATOR ', ') AS subjects
FROM category
INNER JOIN tutor_category_subject ON tutor_category_subject.category_id = category.category_id
INNER JOIN subject ON tutor_category_subject.subject_id = subject.subject_id
WHERE tutor_category_subject.tutor_id = $tutorId AND tutor_category_subject.category_id = $categoryId
GROUP BY category.category_name, subject.subjects
您需要添加groupby
子句,以使您的select能够使用GROUP\u CONCAT