Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"Jean-Michel PERRIERE" | Comment faire une requete qui selectionne une liste de tous les numeros | d'une table SAUF ceux present dans la liste d'une autre table ! | | Merci d'avance ! | | Exemple : | | TABLE1 : Champs1 | | 1 | 2 | 3 | 4 | 5 | 6 | | TABLE2 : Champs2 | | 2 | 3 | | Je veux que le resultat soit | | 1 | 4 | 5 | 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables, glisse les deux champs sur la grille et crée une relation entre ces deux champs (si elle n'existe pas encore) Clique sur le trait qui représente la relation et choisi : "tous de la table1 et seulement seulement ceux qui... de la table2" Comme critère sous le champ de la table2, tu mets : Is Null
"Jean-Michel PERRIERE"
| Comment faire une requete qui selectionne une liste de tous les numeros
| d'une table SAUF ceux present dans la liste d'une autre table !
|
| Merci d'avance !
|
| Exemple :
|
| TABLE1 : Champs1
|
| 1
| 2
| 3
| 4
| 5
| 6
|
| TABLE2 : Champs2
|
| 2
| 3
|
| Je veux que le resultat soit
|
| 1
| 4
| 5
| 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID
FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID
WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables,
glisse les deux champs sur la grille et crée une relation entre ces deux
champs (si elle n'existe pas encore)
Clique sur le trait qui représente la relation et choisi :
"tous de la table1 et seulement seulement ceux qui... de la table2"
Comme critère sous le champ de la table2, tu mets : Is Null
"Jean-Michel PERRIERE" | Comment faire une requete qui selectionne une liste de tous les numeros | d'une table SAUF ceux present dans la liste d'une autre table ! | | Merci d'avance ! | | Exemple : | | TABLE1 : Champs1 | | 1 | 2 | 3 | 4 | 5 | 6 | | TABLE2 : Champs2 | | 2 | 3 | | Je veux que le resultat soit | | 1 | 4 | 5 | 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables, glisse les deux champs sur la grille et crée une relation entre ces deux champs (si elle n'existe pas encore) Clique sur le trait qui représente la relation et choisi : "tous de la table1 et seulement seulement ceux qui... de la table2" Comme critère sous le champ de la table2, tu mets : Is Null
Ou encore : SELECT Numero from Table1 WHERE Numero NOT IN (SELECT Numero from Table2) à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone): Left Join vs Not In(Select ...) En terme de temps de réponse, quelle est la requête la plus rapide ? Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Jean-Michel,
Ou encore :
SELECT Numero from Table1
WHERE Numero NOT IN (SELECT Numero from Table2)
à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone):
Left Join vs Not In(Select ...)
En terme de temps de réponse, quelle est la requête la plus rapide ?
Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros
d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Ou encore : SELECT Numero from Table1 WHERE Numero NOT IN (SELECT Numero from Table2) à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone): Left Join vs Not In(Select ...) En terme de temps de réponse, quelle est la requête la plus rapide ? Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Jessy Sempere [MVP]
Bonjour
Ca c'est la question qui tue... ;-))) Il serait interressant de faire un test effectivement.
Si tu veux, tu peux utiliser cette fonction pour faire un test et comparer les résultats :
************************************************** Public Function TimeOfQuery(strQuery As String, Optional lngX As Long = 1) As Long '** Fonction permettant de tester le temps '** d'exécution d'une requête
Dim sngStart As Single Dim sngEnd As Single Dim i As Long
sngStart = Timer For i = 1 To lngX DoCmd.OpenQuery strQuery DoCmd.Close acQuery, strQuery Next sngEnd = Timer TimeOfQuery = (sngEnd * 1000) - (sngStart * 1000) End Function **************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Eric" a écrit dans le message news: #
Bonjour Jean-Michel,
Ou encore : SELECT Numero from Table1 WHERE Numero NOT IN (SELECT Numero from Table2) à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone): Left Join vs Not In(Select ...) En terme de temps de réponse, quelle est la requête la plus rapide ? Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour
Ca c'est la question qui tue... ;-)))
Il serait interressant de faire un test effectivement.
Si tu veux, tu peux utiliser cette fonction pour faire un test
et comparer les résultats :
**************************************************
Public Function TimeOfQuery(strQuery As String, Optional lngX As Long = 1)
As Long
'** Fonction permettant de tester le temps
'** d'exécution d'une requête
Dim sngStart As Single
Dim sngEnd As Single
Dim i As Long
sngStart = Timer
For i = 1 To lngX
DoCmd.OpenQuery strQuery
DoCmd.Close acQuery, strQuery
Next
sngEnd = Timer
TimeOfQuery = (sngEnd * 1000) - (sngStart * 1000)
End Function
**************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Eric" <f_framZZ@hotmail.com> a écrit dans le message news:
#c2YbjXmFHA.1044@tk2msftngp13.phx.gbl...
Bonjour Jean-Michel,
Ou encore :
SELECT Numero from Table1
WHERE Numero NOT IN (SELECT Numero from Table2)
à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone):
Left Join vs Not In(Select ...)
En terme de temps de réponse, quelle est la requête la plus rapide ?
Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros
d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Ca c'est la question qui tue... ;-))) Il serait interressant de faire un test effectivement.
Si tu veux, tu peux utiliser cette fonction pour faire un test et comparer les résultats :
************************************************** Public Function TimeOfQuery(strQuery As String, Optional lngX As Long = 1) As Long '** Fonction permettant de tester le temps '** d'exécution d'une requête
Dim sngStart As Single Dim sngEnd As Single Dim i As Long
sngStart = Timer For i = 1 To lngX DoCmd.OpenQuery strQuery DoCmd.Close acQuery, strQuery Next sngEnd = Timer TimeOfQuery = (sngEnd * 1000) - (sngStart * 1000) End Function **************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Eric" a écrit dans le message news: #
Bonjour Jean-Michel,
Ou encore : SELECT Numero from Table1 WHERE Numero NOT IN (SELECT Numero from Table2) à copier dans la fenêtre SQL et en adaptant le nom des champs et tables.
Bonjour Pierre(3Stone): Left Join vs Not In(Select ...) En terme de temps de réponse, quelle est la requête la plus rapide ? Merci
Bonjour,
Comment faire une requete qui selectionne une liste de tous les numeros d'une table SAUF ceux present dans la liste d'une autre table !
Merci d'avance !
--
A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
Bonjour Jessy,
Merci pour le bout de code, je n'avais pas eu le courage de l'écrire. C'est l'été ;-) , ce genre de chose, je le garde pour les mauvais jours, période de grisaille, mornes dimanches ... :-(
Je n'ai sous la main que de petites tables de 1500-2000 enregistrements.
Le Left Join est globalement 4 fois + rapide que le not in (select ....) (test fait sur 200 enregistrements)
Pour ceux qui auraient le courage de tester sur des millions d'enregistrements, il serait intéressant d'avoir un meilleur ordre de grandeur.
Bonjour
Ca c'est la question qui tue... ;-))) Il serait interressant de faire un test effectivement.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Jessy,
Merci pour le bout de code, je n'avais pas eu le courage de l'écrire.
C'est l'été ;-) , ce genre de chose, je le garde pour les mauvais jours,
période de grisaille, mornes dimanches ... :-(
Je n'ai sous la main que de petites tables de 1500-2000 enregistrements.
Le Left Join est globalement 4 fois + rapide que le not in (select ....)
(test fait sur 200 enregistrements)
Pour ceux qui auraient le courage de tester sur des millions
d'enregistrements, il serait intéressant d'avoir un meilleur ordre de
grandeur.
Bonjour
Ca c'est la question qui tue... ;-)))
Il serait interressant de faire un test effectivement.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci pour le bout de code, je n'avais pas eu le courage de l'écrire. C'est l'été ;-) , ce genre de chose, je le garde pour les mauvais jours, période de grisaille, mornes dimanches ... :-(
Je n'ai sous la main que de petites tables de 1500-2000 enregistrements.
Le Left Join est globalement 4 fois + rapide que le not in (select ....) (test fait sur 200 enregistrements)
Pour ceux qui auraient le courage de tester sur des millions d'enregistrements, il serait intéressant d'avoir un meilleur ordre de grandeur.
Bonjour
Ca c'est la question qui tue... ;-))) Il serait interressant de faire un test effectivement.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
3stone
Salut Eric,
"Eric" [...] | Le Left Join est globalement 4 fois + rapide que le not in (select ....) | (test fait sur 200 enregistrements)
... ce qui répond à ta question ;-)
En fait, il y a... longtemps, il y eu une discussion à ce sujet, ici.
J'ai eu la chance de mémoriser...
une autre, de la même famille : http://users.skynet.be/accesshome/ah_requete_optimisation.htm
En fait, il y a... longtemps, il y eu une discussion à ce sujet, ici.
J'ai eu la chance de mémoriser...
Veinard, moi je la perds ...
une autre, de la même famille : http://users.skynet.be/accesshome/ah_requete_optimisation.htm
Bon, comme me l'a déja fait remarqué Pierre(CFI),
je ne réponds plus après toi ;-) -- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
3stone
Salut Eric,
"Eric" | Bon, comme me l'a déja fait remarqué Pierre(CFI), | je ne réponds plus après toi ;-)
Meu si ! Te retiens surtout pas !!!
Si je te montrai la liste (que je garde précieusement) du nombre de fois que le même Pierre CFI à dit que je recontais des couenneries! J'en ai gravé 3 CD, jusqu'à maintenant...
"Eric"
| Bon, comme me l'a déja fait remarqué Pierre(CFI),
| je ne réponds plus après toi ;-)
Meu si ! Te retiens surtout pas !!!
Si je te montrai la liste (que je garde précieusement) du nombre de fois
que le même Pierre CFI à dit que je recontais des couenneries!
J'en ai gravé 3 CD, jusqu'à maintenant...
"Eric" | Bon, comme me l'a déja fait remarqué Pierre(CFI), | je ne réponds plus après toi ;-)
Meu si ! Te retiens surtout pas !!!
Si je te montrai la liste (que je garde précieusement) du nombre de fois que le même Pierre CFI à dit que je recontais des couenneries! J'en ai gravé 3 CD, jusqu'à maintenant...
merci, je vais essayer "3stone" a écrit dans le message de news: uI4p1%
Salut,
"Jean-Michel PERRIERE" | Comment faire une requete qui selectionne une liste de tous les numeros | d'une table SAUF ceux present dans la liste d'une autre table ! | | Merci d'avance ! | | Exemple : | | TABLE1 : Champs1 | | 1 | 2 | 3 | 4 | 5 | 6 | | TABLE2 : Champs2 | | 2 | 3 | | Je veux que le resultat soit | | 1 | 4 | 5 | 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables, glisse les deux champs sur la grille et crée une relation entre ces deux champs (si elle n'existe pas encore) Clique sur le trait qui représente la relation et choisi : "tous de la table1 et seulement seulement ceux qui... de la table2" Comme critère sous le champ de la table2, tu mets : Is Null
merci, je vais essayer
"3stone" <3stone_@_skynet_be> a écrit dans le message de news:
uI4p1%23UmFHA.3828@TK2MSFTNGP12.phx.gbl...
Salut,
"Jean-Michel PERRIERE"
| Comment faire une requete qui selectionne une liste de tous les numeros
| d'une table SAUF ceux present dans la liste d'une autre table !
|
| Merci d'avance !
|
| Exemple :
|
| TABLE1 : Champs1
|
| 1
| 2
| 3
| 4
| 5
| 6
|
| TABLE2 : Champs2
|
| 2
| 3
|
| Je veux que le resultat soit
|
| 1
| 4
| 5
| 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID
FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID
WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables,
glisse les deux champs sur la grille et crée une relation entre ces deux
champs (si elle n'existe pas encore)
Clique sur le trait qui représente la relation et choisi :
"tous de la table1 et seulement seulement ceux qui... de la table2"
Comme critère sous le champ de la table2, tu mets : Is Null
merci, je vais essayer "3stone" a écrit dans le message de news: uI4p1%
Salut,
"Jean-Michel PERRIERE" | Comment faire une requete qui selectionne une liste de tous les numeros | d'une table SAUF ceux present dans la liste d'une autre table ! | | Merci d'avance ! | | Exemple : | | TABLE1 : Champs1 | | 1 | 2 | 3 | 4 | 5 | 6 | | TABLE2 : Champs2 | | 2 | 3 | | Je veux que le resultat soit | | 1 | 4 | 5 | 6
Je nomme les champs "ID" dans chaque table, à toi d'adapter:
SELECT T_Table1.ID, T_Table2.ID FROM T_Table1 LEFT JOIN T_Table2 ON T_Table1.ID = T_Table2.ID WHERE (((T_Table2.ID) Is Null));
Dans le requêteur graphique, tu sélectionne les deux tables, glisse les deux champs sur la grille et crée une relation entre ces deux champs (si elle n'existe pas encore) Clique sur le trait qui représente la relation et choisi : "tous de la table1 et seulement seulement ceux qui... de la table2" Comme critère sous le champ de la table2, tu mets : Is Null