Oracle SQL à l'Aide de jointures pour rechercher des valeurs dans une table, et pas un autre
Car apparemment tout le monde déteste le sous sélectionne, je tiens à le faire à l'aide de jointures.
Pour un incroyablement exemple artificiel, prendre deux tables, l'une avec une liste de numéros de 1 à 6 et un avec une liste de numéros de 0-8. Ensuite, mon objectif serait de sortie tous les nombres impairs dans le tableau Nums.
Table Nums
Number
One
Two
Three
Four
Five
Six
Table Even
Number
Zero
Two
Four
Six
Eight
Si je voulais juste avoir la liste des numéros qui sont dans les Nums, je le ferais...
select nums.number
FROM nums,
even,
where nums.number = even.number;
Mais, comment puis-je utiliser ces tables pour obtenir la liste des non-evens dans le tableau Nums? Ou, en d'autres termes, quelque chose comme...
select nums.number
from nums
where nums.number not in (select number from even);
OriginalL'auteur Jeremy | 2012-02-09
Vous devez vous connecter pour publier un commentaire.
Les sous-sélections fines sont utilisées de façon appropriée... "quelqu'un n'aime pas quelque chose" n'est pas une assez bonne raison à mon humble avis.
Il y a plusieurs options 2 à titre d'exemples:
OU
OriginalL'auteur Yahia
pour Oracle :
pour la norme ansi SQL:
ansi SQL est travaille également sur l'Oracle, en plus il fonctionne aussi sur d'autres DBs. Je vous propose d'utiliser le second car il n'est pas spécifique au vendeur, si votre DB changements sql fonctionne toujours, cependant, si vous utilisez Oracle sql spécifique des instructions que vous peut-être revoir votre code en changeant de DB.
OriginalL'auteur dursun