서로 다른 설문 질문이있는 테이블 (설문 조사)이 있습니다. 각 survey_id는이 표에 한 번만 나타납니다.Mysql 첫 번째 레코드 만 가져 오기만하면 여러 레코드가 합쳐지지 않습니다.
각 설문 조사 질문에 대한 사용자 투표 수를 기록하는 표 (vote_survey_table)가 있습니다. 테이블에는 survey_id, vote_yes, vote_no, user_id 등의 필드가 있습니다.이 테이블에는 각 survey_id에 대해 둘 이상의 항목이 있습니다.
주어진 설문 조사 질문에 대해 모든 표를 합산하기 위해 표를 쿼리하려하지만, 내가 사용할 쿼리는 표의 행 표의 첫 번째 인스턴스 만 추가합니다.
SELECT survey.survey_id, vote_survey_table.vote_yes AS cnt,
survey.survey_name, survey.survey_details
FROM survey
LEFT JOIN vote_survey_table AS votedb ON vote_survey_table.vote_survey_id = survey.survey_id
GROUP BY survey.survey_id
ORDER BY cnt DESC, survey.survey_id LIMIT 0,5
내가 투표 테이블에서 survey_id의 모든 인스턴스를 추가하고 결과를 요약하는 쿼리를 말해야한다이 쿼리에 실종 무엇입니까? LEFT JOIN을 INNER JOIN으로 바꾸려고 시도했지만 트릭도하지 않았습니다.
언제나처럼 미리 감사드립니다.
참조
같은 집계 함수를 사용해야합니다. 그렇다면 어 그리 게이션이 어떻게 발생할 것으로 예상됩니까? – RedFilter
그룹화가 자동으로 추가되지 않습니다. count (yes) 사용 – Alfabravo
필드'vote_yes'와'vote_not' 부울 필드가 있습니까? –