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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Not IN Not Exists sous MySQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Not IN Not Exists sous MySQL?

n°1021348
PETOZAK
Posté le 22-03-2005 à 18:23:38  profilanswer
 

alut,
J'aimerais effacer l'ensemble des items d'une table fille qui ne sont pas referencés par une table mere comment faire?

Code :
  1. SELECT  *
  2. FROM itemautos
  3. WHERE  NOT
  4. EXISTS (
  5. SELECT reference
  6. FROM item
  7. WHERE item.reference = itemautos.reference )


Code :
  1. SELECT  *
  2. FROM itemautos
  3. WHERE itemautos.id NOT
  4. IN (
  5. SELECT reference
  6. FROM item)


 
 
J'ai essaye ca et ca ne marche pas :(
Merci

mood
Publicité
Posté le 22-03-2005 à 18:23:38  profilanswer
 

n°1021702
Beegee
Posté le 23-03-2005 à 08:59:35  profilanswer
 

Avant la version 4 de mySql, pas moyen de faire des requêtes imbriquées.
 
Il faut faire des jointures externes plutôt :
 

Code :
  1. SELECT itemautos.* 
  2. FROM itemautos
  3. LEFT JOIN item ON item.reference = itemautos.reference
  4. WHERE item.reference IS NULL;


 
Quand aucune ligne n'est trouvée dans item, les champs renvoyés pour cette table sont NULL, d'où la clause WHERE ;)

n°1021742
PETOZAK
Posté le 23-03-2005 à 09:42:44  profilanswer
 

Merci Beegee je teste ca tout de suite :)

n°1021774
PETOZAK
Posté le 23-03-2005 à 10:17:22  profilanswer
 

Au fait avec un DELETE ca marche comment le LEFT JOIN?

Code :
  1. DELETE  FROM annoncesautos LEFT  JOIN annonces ON annonces.reference = annoncesautos.reference WHERE annonces.reference IS  NULL


Ca ca marche pas :(

n°1021832
Beegee
Posté le 23-03-2005 à 10:52:14  profilanswer
 

Essaye pour voir :
 

Code :
  1. DELETE FROM annoncesautos
  2. USING annoncesautos LEFT JOIN annonces ON annonces.reference = annoncesautos.reference
  3. WHERE annonces.reference IS  NULL;


 
Vu ici : http://dev.mysql.com/doc/mysql/en/delete.html

n°1021846
PETOZAK
Posté le 23-03-2005 à 11:09:36  profilanswer
 

Merci encore Beegee ;)

n°1080378
Gonzoide
Les cochons... dans l'espâââce
Posté le 11-05-2005 à 23:20:25  profilanswer
 

Juste une question supplementaire : comment fait-on quand la table sur laquelle on joint a un critere de selection en plus ?
 
Par exemple, sur le sql precedent on voudrait par exemple que annonces.date soit plus petit que XXX ?
 
J'ai un probleme de ce genre, avec une jointure comme ca tous les champs de la table jointe sont nuls, impossible de raffiner la requete ... :??:

n°1080720
denzz
huhuuuuu ! (désolé )
Posté le 12-05-2005 à 12:33:08  profilanswer
 

Code :
  1. Code :
  2.     * DELETE FROM annoncesautos
  3.     * USING annoncesautos LEFT JOIN annonces WHERE annonces.date < XXX ON annonces.reference = annoncesautos.reference
  4.     * WHERE annonces.reference IS  NULL;


 
au pif ...


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

  Not IN Not Exists sous MySQL?

 

Sujets relatifs
[MySQL] DELETE récursifMysql
Décrementation sous mysql, est ce possible ?Performance MySQL queries via API C
Probleme php/MySQL : "Warning mysql_num_rows()"Probleme MySQL : "Warning mysql_num_rows()"
[PHP MySQL] Accéder à une base distanteproblème de driver mysql
Cmt savoir si PHP a bien load MySQL ?!PHP ne peut charger l'extension mysql ! Why and Help pliz!
Plus de sujets relatifs à : Not IN Not Exists sous MySQL?


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