Aide requête SQL
One
-
rufus -
rufus -
Bonjour,
Voilà, j'aimerais pour une clé (composée de plusieurs champs), récupérer les enregistrements qui n'ont pas de correspondance dans une seconde table avec la même clé.
Par exemple : clé = champ1 , champ2
On a 2 tables : tab1 et tab2
Je voudrais donc récupérer les enregistrements de la tab1 pour qui la clé champ1,champ2 n'existe pas dans la tab2.
J'ai fais cette requête :
select champ1, champ2
from tab1 a
where not exists
( select champ1, champ2
from tab2 b
where a.champ1 = b.champ1
and a.champ2 = b.champ2
)
Cette requête marche mais je voudrais savoir s'il n'y a pas une requête un peu plus simple et certainement moins couteuse en temps de traitements....
Merci de votre aide.
Voilà, j'aimerais pour une clé (composée de plusieurs champs), récupérer les enregistrements qui n'ont pas de correspondance dans une seconde table avec la même clé.
Par exemple : clé = champ1 , champ2
On a 2 tables : tab1 et tab2
Je voudrais donc récupérer les enregistrements de la tab1 pour qui la clé champ1,champ2 n'existe pas dans la tab2.
J'ai fais cette requête :
select champ1, champ2
from tab1 a
where not exists
( select champ1, champ2
from tab2 b
where a.champ1 = b.champ1
and a.champ2 = b.champ2
)
Cette requête marche mais je voudrais savoir s'il n'y a pas une requête un peu plus simple et certainement moins couteuse en temps de traitements....
Merci de votre aide.
A voir également:
- Aide requête SQL
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql lister les tables ✓ - Forum Programmation
3 réponses
peut etre
select champ1.tab1, champ2.tab1 from tab1,tab2 where champ1.tab2=champ1.tab2 and champ2.tab2=champ3.tab3;
voir syntaxe en fonction de ton SGBD
mais ça consommera plus de ressources par contre en temps de traitement ça devrait être un poil mieux
en clair si ta requette passe 15% de CPU en 20secondes
là tu risque d'avoir du 20% de CPU mais sur 15 secondes...
donc attention aux risques de saturer la CPU si tu as une petite config et/ou peu de RAM ou une RAM trop lente car dans ces cas là tu perds tous les avantages de ce type de requettes.
select champ1.tab1, champ2.tab1 from tab1,tab2 where champ1.tab2=champ1.tab2 and champ2.tab2=champ3.tab3;
voir syntaxe en fonction de ton SGBD
mais ça consommera plus de ressources par contre en temps de traitement ça devrait être un poil mieux
en clair si ta requette passe 15% de CPU en 20secondes
là tu risque d'avoir du 20% de CPU mais sur 15 secondes...
donc attention aux risques de saturer la CPU si tu as une petite config et/ou peu de RAM ou une RAM trop lente car dans ces cas là tu perds tous les avantages de ce type de requettes.