J'essaie de concevoir une instruction SQL où j'obtiens ladite erreur dans le sujet. Je comprends qu'il y a d'autres sujets sur cette erreur mais je n'en ai vu aucun concernant mon problème spécifique où j'essaye d'obtenir une valeur basée sur plusieurs rangées. J'apprécierais n'importe quelle perspicacité. Voici mes tables et instructions SQL simplifiées.Problèmes avec SQL ERROR: sous-requête retourné plus de 1 ligne
TableA:
member_id
----------
1
2
3
4
TableB:
user_id field_id value
------------------------
1 1 red
2 2 red
1 2 blue
4 1 red
2 1 blue
3 1 blue
Requête:
SELECT DISTINCT(member_id)
FROM TableA
WHERE member_id = (SELECT b.user_id
FROM TableB b
INNER JOIN TableB a on a.user_id = b.user_id
WHERE a.field_id = '1' ANd a.value = 'red'
AND b.field_id = '2' ANd b.value = 'blue')
Je suis en train de sélectionner le member_id
du tableau A comme user_id
dans le tableau B où, dans la table B, l'ID de champ de l'utilisateur (1) = rouge et l'ID de champ du même utilisateur (2) = bleu.
Par conséquent, l'instruction select doit retourner le member_id avec id = 1.
Vous avez une erreur? Je pense que vous pourriez obtenir ce que vous voulez en mettant simplement distinct dans votre sous-requête et en effaçant la requête externe complètement –