sous-requête renvoyant plusieurs lignes..comment faire?
SELECT requestID
FROM request
WHERE userId = (
SELECT userID
FROM department
WHERE desig = 'E'
AND dept = (
SELECT dept
FROM department
WHERE userId = it18
AND desig = 'FM'
)
);
Merci de nous sommes le peuple et nous voulons les détails.
Apparemment, l'un de vos sous-requêtes renvoie plus d'un résultat. Si nous savions ce que vos tables ressemblait, alors peut-être que nous pourrions les aider. Aussi, avez-vous pensé à utiliser
Apparemment, l'un de vos sous-requêtes renvoie plus d'un résultat. Si nous savions ce que vos tables ressemblait, alors peut-être que nous pourrions les aider. Aussi, avez-vous pensé à utiliser
JOIN
à la place?
OriginalL'auteur user2175325 | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Il serait beaucoup plus clair d'écrire cette requête à l'aide de
JOIN
:Alternativement, Vous pouvez simplement remplacer le
=
avec:
Ils devraient retourner des résultats identiques, mais d'essayer les deux pour voir si il n'y a aucune différence de performance.
OriginalL'auteur Michael Fredrickson
Il y a deux façons de l'aborder:
Option 1: Changement de
WHERE ... IN (SELECT ...)
, comme ceci:Option 2: Force d'un seul résultat en utilisant une fonction d'agrégation comme
MAX()
, comme ceci:OriginalL'auteur Bohemian