Erreur MySQL 1172 - Résultat était constituée de plus d'une ligne

J'obtiens cette erreur de MySQL lors de l'exécution d'une requête à l'intérieur d'une procédure stockée:

Code D'Erreur: 1172
Le résultat était constituée de plus d'une ligne

Je comprends l'erreur: je suis en train de faire un SELECT (...) INTO (var list), et ainsi, la requête doit retourner une seule ligne. Lorsque j'utilise LIMIT 1 ou SELECT DISTINCT, l'erreur disparaît.

Cependant: lorsque j'exécute la requête d'origine manuellement (sans LIMIT ou DISTINCT), elle retourne une seule ligne. Je suis donc soupçonner j'ai peut-être tombé sur un bug MySQL. Personne ne sait ce qui pourrait se passer?

MODIFIER

Je poste le SQL comme demandé. Tout ce qui commence par un caractère de soulignement est une variable déclarée plus tôt à l'intérieur de la procédure. Quand je l'ai tester, je suis en remplacement de _cd_pai_vc avec l'ID de l'enregistrement qui est à l'origine du problème.

SELECT  a.valor,    IFNULL(p.valor, 0), fn_cd2alias(ra.cd_registro),    fn_cd2alias(IFNULL(p.valor,0))
INTO    _valor,     _cd_pai_vc,         _alias_verbete,                 _alias_pai
FROM dados_registros ra
    INNER JOIN dados_varchar255 a
    ON a.cd_registro = ra.cd_registro
        AND a.fl_excluido = 0
        AND a.alias = 'vc-verbetes-termo'
    LEFT OUTER JOIN dados_registros rp
        INNER JOIN dados_int p
        ON p.cd_registro = rp.cd_registro
            AND p.fl_excluido = 0
            AND p.alias = 'vc-remissoes-termo referenciado'
        INNER JOIN dados_int pt
        ON pt.cd_registro = rp.cd_registro
            AND pt.fl_excluido = 0
            AND pt.alias = 'vc-remissoes-tipo remissao'
            AND fn_cd2alias(pt.valor) = 'hierarquica'
    ON ra.cd_registro = rp.cd_entidade
        AND rp.fl_excluido = 0
        AND fn_cd2alias(rp.cd_modulo) = 'vc-remissoes'
WHERE ra.cd_registro = _cd_pai_vc 
    AND ra.fl_excluido = 0;
Ce qui est à l'intérieur SQL ?
Ajouté le SQL. Je sais que le joint pourrait entraîner un surcroît de lignes à extraire, mais, comme je l'ai dit dans la question, quand je test avec un ID au lieu de _cd_pai_vc (et commentez la INTO partie), je ne reçois qu'une seule ligne.
Regarde cery lui comme _cd_pai_vc a la valeur faux: Juste pour le test, dans la procédure stockée la remplacer par la constante qui ne donne qu'une seule ligne lorsque vous exécutez manuellement et voir si l'erreur persiste.
La requête est en fait à l'intérieur d'une boucle sur la procédure. C'est de la traversée de l'arbre vers le haut, et _cd_pai_id est redéfini à l'actuel parent_id à chaque itération. J'ai essayé ce que vous avez suggéré de toute façon, le remplacement de la var avec chaque parent_id impliqués, à un moment, et je n'ai pas toutes les erreurs. Comment venir? Quand je SELECT la valeur actuelle de la variable pour le débogage, il montre exactement les mêmes valeurs, j'ai essayé comme des constantes, mais puis-je obtenir de l'erreur.
J'ai donné jusqu'à la compréhension de la cause, et ont juste ajouté DISTINCTE de la requête. Si je le revoir un jour, je vais poster des nouvelles ici.

OriginalL'auteur bfavaretto | 2012-02-29