以下のクエリがありますが、これは機能するはずです。しかし、MySQL から「サブクエリが複数の行を返します」というエラー メッセージが表示されます。
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 を使用する全体的な目的は、「エピソード」ごとに 1 つの行のみを返すことです。
外側の選択は複数の行を返します。
内部選択は、単一のエピソード テーブルの主キーに対して実行されると、予想されるように単一の行を返します。
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
これを期待どおりに機能させるには、どうすればよいですか?