2012-07-11 21 views
0

我想知道如果也許有人可以對下面的錯誤提出一些看法。 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 = 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 - 不帶組組列(MIN(),MAX(),COUNT(),...)的混合如果沒有GROUP BY子句,列是非法的

回答

0

就像錯誤提示:不能在沒有GROUP BY子句的情況下混合組列和非組列。嘗試添加一個:

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 
-1

我相信你想這樣的:

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 

您需要GROUP BY條款加入,讓您的選擇可以使用GROUP_CONCAT