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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Besoin d'aide requête MySQL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide requête MySQL

n°930850
kenses
Beuha? euha!!!
Posté le 23-12-2004 à 12:11:44  profilanswer
 

Bonjour,
 
je bloque sur une requetes depuis plusieurs jours.
 
Le but de la requete est  de retourner la liste des postes qui ne possède pas le logiciel $un_pa (variable selectionné dans une liste)
 
Ma table est composé de deux champs : le premier UC_NOM (contenant le nom du poste) et le deuxieme CAPTION (contenant le nom du logiciel)
 
on peux retrouver dans la table plusieurs fois la meme valeur UC_NOM mais avec des Caption différentes.
 [:nul_olive]  
 
pouvez vous m'aider.
 
j'avais pensé à la requete suivante :
 
 
$query_s = "SELECT * FROM `software` Where Caption=\"". $un_pa ."\"";
$result_i = mysql_db_query($dbName_s, $query_s);
 
 while ($row_a = mysql_fetch_array($result_i)) {
   $subquery_s = "SELECT UC_NOM, Caption FROM `software` Where NOT (Caption=\"". $un_pa ."\" OR UC_NOM=\"". $row_a["UC_NOM"]."\" ) Group By UC_NOM";
   $subresult_i = mysql_db_query($dbName_s, $subquery_s);
   while ($row_b = mysql_fetch_array($subresult_i)) {
   $free_s .= "<TR class=" . $class_s . ">\n" .
                "<TD>&nbsp;" . stripslashes(htmlentities($row_b["UC_NOM"], ENT_QUOTES)) . "</TD></TR>\n";
 
   }

mood
Publicité
Posté le 23-12-2004 à 12:11:44  profilanswer
 

n°931098
Beegee
Posté le 23-12-2004 à 18:21:33  profilanswer
 

Tu peux le faire avec un NOT IN si ta version de mySql est récente.
 
Je vais supposer que ce n'est pas le cas ...
Tu peux alors le faire comme ça :
 

Code :
  1. SELECT DISTINCT s1.uc_nom
  2. FROM software s1
  3. LEFT JOIN software s2 ON s2.uc_nom = s1.uc_nom
  4. WHERE s2.caption = '$un_pa'
  5. AND s2.uc_nom IS NULL;


 
explication ici :
 
http://mysql.developpez.com/faq/?p [...] s_requetes

n°931367
kenses
Beuha? euha!!!
Posté le 24-12-2004 à 10:49:37  profilanswer
 

Merci pour cette reponse.
 
je vais regarder.

n°931475
kenses
Beuha? euha!!!
Posté le 24-12-2004 à 15:01:05  profilanswer
 

ca marche pas faort mais voici la requete qui me convient
 
SELECT UC_NOM FROM `software` Where NOT IN(SELECT UC_NOM as BOB, Caption FROM `software` Where Caption="$log" ) Group By UC_NOM
 
 
Le seul problème est que j'utilise une version 4.0 de mysql; donc ca ne marche pas.
 
bref comment puis-je faire cette requete
 
merci

n°931489
Beegee
Posté le 24-12-2004 à 15:21:36  profilanswer
 

Regarde le lien que je t'ai passé y a des infos sur la transformation d'un NOT IN en jointure externe. Tu devrais arriver à qqch approchant ce que j'ai mis plus haut.

n°931497
kenses
Beuha? euha!!!
Posté le 24-12-2004 à 15:37:35  profilanswer
 

Bon je viens de changer la version de mysql je suis passé en 4.1 mais ca ne marche toujours pas  
il doit surement avoir une erreur de synthaxe dans ma requete
 
la voici
SELECT UC_NOM FROM `software` Where UC_NOM NOT IN (SELECT UC_NOM FROM `software` Where Caption="Winzip" )Group By UC_NOM
 
Mais ca ne marche pas

n°931502
Beegee
Posté le 24-12-2004 à 15:47:32  profilanswer
 

Fais plutôt :
 

Code :
  1. SELECT DISTINCT s1.uc_nom
  2. FROM `software` s1
  3. WHERE NOT EXISTS
  4.     (SELECT s2.uc_nom
  5.      FROM `software` s2
  6.      WHERE s2.uc_nom = s1.uc_nom
  7.      AND caption = "Winzip" );

n°931534
kenses
Beuha? euha!!!
Posté le 24-12-2004 à 17:24:36  profilanswer
 

c'est ok ça fonctionne.
 
Merci

n°931695
Beegee
Posté le 25-12-2004 à 12:04:17  profilanswer
 

En plus c'est plus performant que le NOT IN ;)


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

  Besoin d'aide requête MySQL

 

Sujets relatifs
besoin d'aide pour convertion html-->css[EasyPhp1.6] perdu les droits root sur base mysql
Expressions régulieres un peu d'aide ...requete sql probleme avec accent é
SQBDR besoin d'aide amateurreplication MySQL - 1 maitre 4 esclaves - 1 maitre 1 esclave
j'arrive pas à faire une requeteProbleme Argument mysql_num_rows
Besoin d'aide pour une requete MySQL un peu spéciale (SELECT)[MySQL] Besoin d'aide pour une requête
Plus de sujets relatifs à : Besoin d'aide requête MySQL


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