2014-11-03 3 views
0

다음과 같이 저는 두 테이블이 : 내가하고 싶은 것은MySQL은 여러 개의 동일한 열에서 수와 다른 테이블에 결과를 삽입

id | fullname | gender | level 
------------------------------ 
1 | Jerry | Male | Year 1 
2 | Jen  | Female | Year 1 
3 | Tom  | Male | Year 2 
4 | Natasha | Female | Year 2 

표 2

level | male | female 
---------------------- 
     |  | 
     |  | 

을 전체 번호를 삽입하십시오. 남성과 총 아니요. 레벨 1에 의해 table1에서 table2 그룹으로 여성의.

다음 표와 같이 가정 예상 결과 : 나는 다음 코드를 시도했습니다

level | male | female 
--------------------- 
Year 1 | 1 | 1 
Year 2 | 1 | 1 

을 :

INSERT INTO table2 (level, male, female) 
SELECT level, 
     SUM(gender = 'Male') male, 
     SUM(gender = 'Female') female, 
FROM table1 
GROUP BY level 

여기 묻는 질문 중 하나를 가지고 위의 코드 그것은 내 것과 같은 문제가있는 것 같았지만 코드를 실행할 때 아무 것도주지 않습니다.

테이블 자체의 문제입니까? 아니면 코드에서 나온 것입니까?

+0

여기에는'여성 '다음에 쉼표가 있습니다. 나는 타이포그래피 오류라고 생각하고 그러한 질문을 닫습니다. –

+0

@GordonLinoff 방금 그 사실을 깨달았습니다. 고마워요.하지만 여전히 작동하지 않습니다. ( –

+0

작동합니다. 열의 순서가 잘못되었습니다. 불편을 드려 죄송합니다. 다시 고마워요 :)) –

답변

1

이렇게하면 문제가 해결됩니다.

INSERT INTO table2 (level,male,female) 
SELECT level, 
SUM(CASE WHEN `gender` = 'Male' THEN 1 ELSE 0 END) AS male, 
SUM(CASE WHEN `gender` = 'female' THEN 1 ELSE 0 END) AS female 
FROM `table1` GROUP BY level 
+0

안녕하세요. 응답 주셔서 감사합니다. 하지만 또 다른 문제가 있습니다. INSERT INTO를 REPLACE INTO로 대체하여 전체 테이블을 업데이트하려고하지만 테이블의 포함 내용을 바꾸는 대신 계속 추가합니다. 나는 가능성을 많이 보았지만 결과는 나에게 주어졌다. –

+0

* gace 나 같은 결과 –

+0

나는 그것을 해결할 수 있었다 :)) –

관련 문제