Oracle
 sql >> Base de données >  >> RDS >> Oracle

La requête avec une sous-sélection brisée devrait entraîner une erreur mais renvoyer des lignes

La raison en est que lorsqu'une colonne sans alias n'existe pas dans la sous-requête mais existe dans la requête externe, Oracle suppose que vous faites référence à la colonne de la requête externe.

Avec les alias, la requête qui vous pose problème ressemblerait à :

select *
from   test_values tv
where  tv.tst_id in (select tv.tst_id2
                     from   test_lookup tl
                     where  tl.tst_value = 'findMe');

J'espère que cela rend les choses plus claires ?

Le problème que vous rencontrez est un très bon exemple de la raison pour laquelle vous devez toujours étiqueter vos colonnes avec la table d'où elles proviennent - cela facilite beaucoup la maintenance de la requête pour commencer !