D'où la clause de vérifier à l'encontre de deux colonnes dans une autre table
J'ai du mal à obtenir cette réponse pour une raison quelconque.
J'ai deux tables table1 et table2 qui ressemble à ceci:
Table1:
ID Location Warehouse
1 London Narnia
2 Cyprus Metro
3 Norway Neck
4 Paris Triumph
Table2:
ID Area Code
1 London Narnia
2 Cyprus Metro
3 Norway Triumph
4 Paris Neck
J'ai besoin d'abord de sélectionner tous les éléments de la table table1 où table1.Location
est dans table2.Area
ET table1.Warehouse
est dans table2.Code
étant DONNÉ QUE table1.Location
est dans table2.Area
. I. e. Je veux:
ID Location Warehouse
1 London Narnia
2 Cyprus Metro
J'ai:
select
1.location
, 1.warehouse
from table1 1
where 1.location in (select area from table2)
and 1.warehouse in (select code from table2)
Mais cela ne marchera pas, parce que j'ai besoin de la deuxième clause where pour être exécuté sur la base de la première clause where holding vrai.
J'ai aussi essayé similaire requêtes avec des jointures en vain.
Est-il un moyen simple de faire cela?
Vous devez vous connecter pour publier un commentaire.
Utilisation
exists
:Je dois faire remarquer que certaines bases de données de soutien de ligne de constructeurs avec
in
. Qui permet de le faire:Peut-être que je manque quelque chose, mais une simple jointure sur les deux conditions vous donner le résultat dans votre exemple:
Résultat:
Exemple de SQL Violon
select distinct t1. location, t1.warehouse
pour éliminer les doublons, mais je pense que la réponse par Gordon Linoff pourrait être plus approprié dans votre cas.Vous devez utiliser
JOIN
.Je vais la conception de la requête en temps 🙂
EDIT: