begin process at 2010 03 18 02:52:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Select NOT IN


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Select NOT IN

dimanche 12 octobre 2008 à 11:32:25 | Select NOT IN

olibara

Bonjour

Je ne parviens pas a trouver une syntaxe fonctionelle pour un NOT IN

But, je voudrais selectionner tous les éléments d'une tables dont l'ID ne se trouve pas dans une autre table

J'imaginais pouvoir faire

select distinct
addrid
from tours
where
(addrid NOT  in (select addrid from ok))

Mais le resultat est toujours vide
Par contre si je fais

select distinct
addrid
from tours
where
(addrid   IN (select addrid from ok))

Alors j'ai un resultat pertinent mais qui est l'opposé de ce que je voudrais ???



dimanche 12 octobre 2008 à 14:58:29 | Re : Select NOT IN

coq

Administrateur CodeS-SourceS
Salut,

Pourtant à première vue c'est valide comme logique, il faudrait juste vérifier les différences de perfs avec une écriture basée sur une jointure.
Tu es sur d'avoir des entrées dans l'une qui ne sont pas dans l'autre ?
A voir si MySQL supporte un opérateur similaire à EXCEPT sous SQL Server


/*
coq
MVP Visual C#
CoqBlog
*/
dimanche 12 octobre 2008 à 15:07:20 | Re : Select NOT IN

olibara

Salut Coq

Non ca marche vraiment pas et je ne comprends pas pourquoi

J'ai contourné en adaptant le design de la db et en travaillant sur un flag et une jointure
Si un jour je trouve la réponse je le saurai pour la prochaine fois



lundi 13 octobre 2008 à 11:45:24 | Re : Select NOT IN

crn_c21

T'as essayé :

select distinct
addrid
from tours
left outer join Ok on Ok.addrid=tours.addrid
where
ok.addrid is null
lundi 13 octobre 2008 à 13:08:34 | Re : Select NOT IN

olibara

Salut

Oui avec les jointure ca marche
Mais c'est le fait que le NOT IN ne marche pas que je trouve bizarre

Ca signifie qu'on ne PEUT PAS employer cette syntaxe qui donne des résultat inatendus.

vendredi 17 octobre 2008 à 00:11:04 | Re : Select NOT IN

crn_c21

Est-tu sur d'avoir des enregistrements répondant au NOT IN?

Si dans une table T1 tu as 1,2 et 5 et que dans une autre T2 tu as 1,2  forcément un :

SELECT ID  FROM T1 WHERE ID not in (Select Id From T2)

te renverras 5!!

vendredi 17 octobre 2008 à 07:33:17 | Re : Select NOT IN

olibara

Salut

En fait j'ai trouvé et c'est tres bon a savoir

Table 1  : 1,2,3,4,5,6,7

Table 2 : 5,6,7

NOT IN rends 1,2,3,4

Table2 : 5,6,7,null,9

NOT IN rends null

lundi 4 janvier 2010 à 18:44:47 | Re : Select NOT IN

onveut

J'ai un gros problème également avec le NOT IN, que je n'ai pas avec le IN et auquel je ne trouve pas d'alternative !!!
Sur cette requête :
SELECT Produit.NomProduit, Produit.NumProduit,
NaturelProduit.NumNaturel,
ChimiqueProduit.NumChimique
FROM
Produit
INNER JOIN NaturelProduit ON Produit.NumProduit = NaturelProduit.NumProduit
INNER JOIN ChimiqueProduit ON Produit.NumProduit = ChimiqueProduit.NumProduit
WHERE Produit.NumNaturel IN (
SELECT DISTINCT(NumNaturel)
FROM NaturelProduit
WHERE NumProduit = '1')
AND Produit.NumChimique NOT IN (
SELECT DISTINCT(NumChimique)
FROM ChimiqueProduit
WHERE NumProduit = '1')

Le NOT IN ne fonctionne pas ! Si il y a les NumChimique 1 et 2 liés au Produit '1', 3 et 4 au produit '2', 2 et 3 au produit '3', il devrait m'afficher uniquement le produit '2' donc mais que nenni, il m'affiche le '2' et le '3' !!

Je deviens fou !
lundi 4 janvier 2010 à 18:52:54 | Re : Select NOT IN

crn_c21

que renvoit :

SELECT DISTINCT(NumNaturel)
FROM NaturelProduit
WHERE NumProduit = '1')


et que renvoit

SELECT DISTINCT(NumChimique)
FROM ChimiqueProduit
WHERE NumProduit = '1'

lundi 4 janvier 2010 à 19:00:10 | Re : Select NOT IN

olibara

Je ne sais pas si j'ai bien compris ce que tu veux faire

Mais est-ce que ceci n'est pas la meme chose ?

SELECT
Produit.NomProduit,
Produit.NumProduit,
NaturelProduit.NumNaturel,
ChimiqueProduit.NumChimique
FROM
Produit
INNER JOIN NaturelProduit ON Produit.NumProduit = NaturelProduit.NumProduit AND NumProduit = '1'
INNER JOIN ChimiqueProduit ON Produit.NumProduit = ChimiqueProduit.NumProduit AND NumProduit <> '1'


1 2 3 4

Cette discussion est classée dans : select, not, in, distinct, addrid


Répondre à ce message

Sujets en rapport avec ce message

Faire plusieurs if dans un procedure stockee [ par chris81 ] bonjour,comment puis je faire pour verifier plusiseurs if dans la meme procedure stockee c'est a direif not exist(SELECT Id FROM...) et if not exists( SQL : probleme de not in [ par bliss_00 ] Bonjour à tous,je voudrais éxécuter une requête SQL sur une BdD mysql mais apparemment il y aurait une erreur de syntaxe. Je ne suis pas sûr de la syn Select Distinct sur une colonne [ par thiosyiasar ] Bonjour,Je veux récupérer une liste d'utilisateur dans une table utilisateur. (id, nom, prénom, email)L'application qui alimente la table ne prend pas Problème de NOT IN !? [ par djagger ] Salut !J'ai une table contrat, avec un numéro d'emplacement et un status.Il peut y avoir plusieurs contrats sur le meme emplacement.Ce que je voudrais Simplifier un requete avec 2 NOT IN [ par boninou ] Bonjour à tous ! Est il possible de simplifier cette requete ? SELECT nom_equipe FROM equipe WHERE nom_equipe NOT IN (SELECT equipe1 FROM matchs whe DISTINCT [ par zen69 ] Salut a tous!J'ai un probleme avec un requete de type select... Ca parait simple a premiere vue, mais le resultat escompter n'y est pas.Je veux faire SELECT IN [ par whouu ] Salut a tous, je fais court et clair, un utilisateur fais une recherche il entre un mot dans un champ texte par ex "maison" , je fais un select dans m Récupérer le résultat d'une requete dans une variable ... [ par dinous ] bonjour ! voici ce que je voudrai faire : select distinct() from ... where ... et metre le résultat de cette erquete dans eun variable genre : @ma Différence entre not in / not exists [ par boumbo73 ] Bonjour, J'ai du mal à faire la différence entre NOT IN et NOT EXISTS ?Merci pour votre aide Update dans select [ par olibara ] BonjourJ'aimerais savoir s'il est possible de faire un UPDATE en utilisant une commande selectUn truc du genre :[CODE]UPDATEaddressset Address.isEtiqu


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales