2012-06-20 2 views
1

J'ai la requête, ci-dessous, qui devrait fonctionner. Mais, MySQL me donne le message d'erreur "La sous-requête renvoie plus d'une ligne". Le but entier de l'utilisation de group_concat dans cette requête est de renvoyer une seule ligne par 'épisode'.mysql group_concat dans la sous-requête renvoie plus d'une ligne

La sélection externe renvoie plusieurs lignes.

La sélection interne, lorsqu'il est exécuté pour une clé primaire de la table épisode, retourne une seule ligne que vous pensez:

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 

La sélection intérieure sans group_concat, lorsqu'il est exécuté pour une clé primaire de table épisode , peut renvoyer plusieurs lignes:

select d.fulldescription 
     from episode_rhythm er join diagnosis d on er.diagnosis_fk = d.diagnosis_pk 
     WHERE er.episode_fk = 234776 

Que dois-je faire pour que cela fonctionne comme je m'y attendais?

Répondre

0

Votre sous-requête dans SELECT est un peu douteuse.

Je suppose que ce que vous cherchez est:

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 
Questions connexes