1
다음과 같은 쿼리가 작동합니다. 그러나 MySQL은 'Subquery가 두 개 이상의 행을 반환합니다.'라는 오류 메시지를 표시합니다.하위 쿼리의 mysql group_concat이 두 개 이상의 행을 반환합니다.
select e.episode_pk,
(select group_concat(d.fulldescription separator ', ')
from episode_rhythm er join diagnosis d on er.diagnosis_fk = d.diagnosis_pk
WHERE er.episode_fk = e.episode_pk group by d.fulldescription) as rhythmDesc
from episode e
WHERE e.patientid_fk='89976'
이 쿼리에서 group_concat을 사용하려는 목적은 모두 '에피소드'당 하나의 행만 반환하는 것입니다.
외부 선택은 여러 행을 반환합니다. 당신이 생각하는 것처럼
는 단일 에피소드 테이블의 기본 키를 실행할 때, 하나의 행을 선택 내부 반환합니다 :
select group_concat(d.fulldescription separator ', ')
from episode_rhythm er join diagnosis d on er.diagnosis_fk = d.diagnosis_pk
WHERE er.episode_fk = 234776 group by d.fulldescription
내부 선택을 GROUP_CONCAT하지 않고, 하나의 에피소드 테이블의 기본 키를 실행할 때 복수 행을 반환 할 수 있습니다.
select d.fulldescription
from episode_rhythm er join diagnosis d on er.diagnosis_fk = d.diagnosis_pk
WHERE er.episode_fk = 234776
예상대로 작동하려면 어떻게해야합니까?