[英]MySQL group_concat in subquery returns more than one row
我有下面的查詢,它應該有效。 但是,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
的全部目的是每個“劇集”僅返回一行。
外部 select 返回多行。
內部SELECT
,當針對單個劇集表主鍵運行時,如您所懷疑的那樣返回單行:
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;
內部SELECT
沒有GROUP_CONCAT
,當針對單個情節表主鍵運行時,可能會返回多行:
SELECT d.fulldescription
FROM episode_rhythm er
JOIN diagnosis d ON er.diagnosis_fk = d.diagnosis_pk
WHERE er.episode_fk = 234776;
我需要做什么才能讓它像我期望的那樣工作?
您在 SELECT 中的子查詢有點可疑。
我猜你要找的是:
SELECT
e.episode_pk,
GROUP_CONCAT(d.fulldescription separator ', ')
FROM episode_rhythm er
JOIN diagnosis d ON er.diagnosis_fk = d.diagnosis_pk
JOIN episode e ON er.episode_fk = e.episode_pk
WHERE e.patientid_fk='89976'
GROUP BY e.episode_pk
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.