Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1032 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Exclure enregistrements d'une requête MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exclure enregistrements d'une requête MySQL

n°2153376
polo7
Posté le 15-08-2012 à 21:32:54  profilanswer
 

Hello tous,
J'ai un trou... passager j'espère.
J'aimerais obtenir la liste des items de la table lesson en excluant les items qui sont dans la table lesson_animal (table associative) en fournissant un id_animal.
Si id_animal=2 (truc2) Il faut sortir:
info2 et info4
 
info1 et info3 sont exclus car truc2 en fait déjà partie.
 
lesson(id_lesson,lesson_name)
1 info1
2 info2
3 info3
4 info4
 
lesson_animal(id_lesson,id_animal)
1 2
1 3
2 4
3 2
 
animal(id_animal,animal_name)
1 truc1
2 truc2
3 truc3
4 truc4
 
 
Est-ce clair ?
 
Merci de vos suggestion.


Message édité par polo7 le 16-08-2012 à 21:10:56
mood
Publicité
Posté le 15-08-2012 à 21:32:54  profilanswer
 

n°2153425
mrbebert
Posté le 16-08-2012 à 19:26:20  profilanswer
 

Pas compris comment devaient être sélectionnées/exclues les lignes [:tinostar]  
 
Pour exclure des lignes, tu peux utiliser le "NOT IN"


---------------
Doucement le matin, pas trop vite le soir.
n°2153430
polo7
Posté le 16-08-2012 à 21:12:15  profilanswer
 

OK, j'ai pris un cas et j'ai fait une sous-requête qui fonctionne:
SELECT * FROM lesson WHERE lesson.id_lesson NOT IN (SELECT lesson_animal.id_lesson FROM lesson_animal WHERE lesson_animal.id_animal=$id_animal)
 
Mais il me semble que ce serait plus optimal avec une jointure.

n°2153437
mrbebert
Posté le 16-08-2012 à 22:02:58  profilanswer
 

Quelque chose dans ce genre :

SELECT *
FROM lesson l
LEFT JOIN lesson_animal l_a ON (l.id_lesson=l_a.id_lesson)
WHERE l_a.id_animal=$id_animal
  AND l_a.id_lesson IS NULL


 
Si des tests montrent de meilleures performances, ça peut être une alternative mais perso, je préfère largement ta requête :)


Message édité par mrbebert le 16-08-2012 à 22:03:18

---------------
Doucement le matin, pas trop vite le soir.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Exclure enregistrements d'une requête MySQL

 

Sujets relatifs
[MySQL Linux] Bases de données sur différentes partitions?VBS : Connaitre temps de réponse requête HTTP via proxy
PHP ne peut charger l'extension mysql,[MySQL] Convertir une base en UTF8
comment on peut backup les data de mysqlTemps d'éxécution requête Oracle Sql trop longue
différences entre SQL Server et MySQLProblème de tri d'enregistrements
ressortir les enregistrements les plus proche d'une date[Résolu] Simplification de requete SQL
Plus de sujets relatifs à : Exclure enregistrements d'une requête MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR