Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2006, 12h30   #1
Membre confirmé
 
Avatar de aDamas
 
Inscription : décembre 2004
Messages : 260
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : décembre 2004
Messages : 260
Points : 274
Points : 274
Par défaut Utilisation du NOT IN

Bonjour,

Voila mon probleme, j'ai une table stage, une table compagnie et une table etudians, le but etant d'attribuer un stage offert par une compagnie a chaque etudiant. Je souhaiterais donc connaitre quel offre est encore libre pour une telle compagnie. Pour cela j'ai essaye la requete suivante :

Code :
1
2
3
4
5
6
SELECT * FROM (SELECT * FROM offers 
LEFT JOIN companies ON companies.companiesID = offers.offersID 
WHERE offers.offersID NOT IN (SELECT offers.offersID
FROM offers, trainee 
WHERE offers.offersID = trainee.traineeOfferID )) a 
WHERE a.companiesID = '1'
Celle-ci ne me retourne aucun resultat...

Maintanant si j'essaye :

Code :
1
2
3
4
SELECT * FROM offers LEFT JOIN companies ON companies.companiesID = offers.offersID 
WHERE offers.offersID NOT IN (SELECT offers.offersID
FROM offers, traineeship 
WHERE offers.offersID = traineeship.traineeshipOfferID )
Cela fonctionne parfaitement, mais je souhaiterais avoir que les offres de la compagnie 1... Alors comment faire ? J'avoue que je suis un peu perdu, je debute en mysql...

Je vous remercie d'avance de votre aide.
__________________

aDamas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 04h46   #2
Membre confirmé
 
Avatar de aDamas
 
Inscription : décembre 2004
Messages : 260
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : décembre 2004
Messages : 260
Points : 274
Points : 274
Oups, c'etait juste un faute de frappe, au lieu de :
Code :
companies.companiesID = offers.offersID
je devais mettre :
Code :
companies.companiesID = offers.offersCompaniesID
La requete finale est donc :
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT *
FROM offers
LEFT JOIN companies ON companies.companiesID = offers.offersCompaniesID
WHERE companies.companiesID =1
AND offers.offersID NOT
IN (
 
SELECT offers.offersID
FROM offers, traineeship
WHERE offers.offersID = traineeship.traineeshipOfferID
)
__________________

aDamas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h15.


 
 
 
 
Partenaires

Hébergement Web