2013-10-23 2 views
1

내가 mysql을 사용할 때 나는이 오류가있어서 누구나 나에게 설명 할 수있다. 다음 중 A, B, C의 다른 점은 무엇입니까? 이 브래킷 밖으로 오류가 잘 작동은 A에서 그룹별로()와 그룹별로 차이가

A) select * from table where a=a group by(b) // this execute & work fine 
B) select * from table where a=a group by b,c // this execute * work fine 

c) select * from table where a=a group by (b,c) // this is giving an error - error is operand should contain 1 column. 

하지만 여러 그것의 작동 및 오류를 언급 준다 그룹화 C에서 같은 방법을 사용하는 경우.

왜 그런가요? mysql 그룹화에서() & 그룹별로 다른 그룹은 무엇입니까?

고마워요.

답변

0

group by (b, c)는 "b"를 사용하기 때문에 "b, c"필드로 그룹화한다는 것을 의미합니다.

B에 의해 그룹, C는 필드 C에 의해 다음 필드 B에 의해 당신에게 그룹을 그룹을 의미

+0

아니요. 오류는 "피연산자가 1 열을 포함해야합니다."라고 설명합니다. 즉, (b, c)에 의해 group을 사용하면 mysql은 b와 c가 두 개의 열임을 나타냅니다. 하지만()을 사용하면 두 개의 열로 그룹화 할 수 없다고 말합니다. 그게 내 질문이 무엇인지, 왜 이런 일이 일어나는가? – maXfenda

0

이들은 동일합니다

group by (b), (c) 
group by b, c 

대괄호 (그들은 아무런 영향을주지 않습니다) 중복 때문에, 그러나에 이 :

group by (b, c) 

브래킷은 단일 값이 아닌 표현 b, c에서 단일 주문 용어를 생성하고, order by 용어가 있어야합니다 단일 값.