簡體   English   中英

MySQL 子查詢中的 group_concat 返回多行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM