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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU][SQL] Pb de requete vide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU][SQL] Pb de requete vide

n°1464042
leohnart
Posté le 24-10-2006 à 14:04:48  profilanswer
 

Bonjour à toutes et à tous,
 
J'ai un petit pb avec une requete qui "m'oublit" des enregistrement.
 
J'ai ds ma base 3 tables, 1 client, 1badge et une table client_badge qui regroupe les clés primaires des 2 autres tables.  
Lorsque je fais une requete pour avoir ma liste des badges et le nom du client associé (si il y en a un), cela me retourne seulement les badges qui ont un client attribué, les autres n'apparaissent pas.  
 
Comment puis je faire pour que ma requete me sorte ts les badges, ceux avec des client et aussi ceux qui n'en n'ont pas.
 
Merci pour votre aide.


Message édité par leohnart le 25-10-2006 à 12:56:43

---------------
http://kciope.free.fr - retouche de photos
mood
Publicité
Posté le 24-10-2006 à 14:04:48  profilanswer
 

n°1464049
FlorentG
Unité de Masse
Posté le 24-10-2006 à 14:09:02  profilanswer
 

LEFT JOIN

n°1464111
leohnart
Posté le 24-10-2006 à 15:11:03  profilanswer
 

ok je vais me renseigner sur ce "LEFT JOIN", merci de m'avoir mis sur la piste


---------------
http://kciope.free.fr - retouche de photos
n°1464123
bpoujol
Posté le 24-10-2006 à 15:14:48  profilanswer
 

C'est avec quel SGBD ?

n°1464191
leohnart
Posté le 24-10-2006 à 15:53:07  profilanswer
 

bpoujol a écrit :

C'est avec quel SGBD ?


j'utilise access


---------------
http://kciope.free.fr - retouche de photos
n°1464201
rocodido
Posté le 24-10-2006 à 15:56:43  profilanswer
 

sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi :p)

n°1464207
leohnart
Posté le 24-10-2006 à 15:58:24  profilanswer
 

C'est bon j'ai compris le principe de left join, je vais compliquer le tout en voulant récuperer des données qui viennent de plus de 2 tables.  
 
A Priori quand on utilise le left join la syntaxe est :
 
SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

 
Ou est ce que je peux mettre mes autres tables???
Si vous avez des pistes, je suis bien sur preneur :)


---------------
http://kciope.free.fr - retouche de photos
n°1464217
leohnart
Posté le 24-10-2006 à 16:02:35  profilanswer
 

rocodido a écrit :

sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi :p)


J'ai essayé ca, ca ne me donne rien de plus, c'est la premiere fois que j'ecoute parler d'un truc pareil :ouch:


---------------
http://kciope.free.fr - retouche de photos
n°1464229
rocodido
Posté le 24-10-2006 à 16:05:27  profilanswer
 

ta requete me parait bizarre apres le from tu as pas mis Orders.. elle fonctionne ?  
 

n°1464233
rocodido
Posté le 24-10-2006 à 16:06:29  profilanswer
 

ca doit etre un raccourci de ton left join :) plus rapide à écrire

mood
Publicité
Posté le 24-10-2006 à 16:06:29  profilanswer
 

n°1464237
leohnart
Posté le 24-10-2006 à 16:08:27  profilanswer
 

rocodido a écrit :

ta requete me parait bizarre apres le from tu as pas mis Orders.. elle fonctionne ?


Oui oui ca fonctionne, enfin si tu parles de la requete en italique, sinon pour la vrai je bute :/


---------------
http://kciope.free.fr - retouche de photos
n°1464243
kao98
...
Posté le 24-10-2006 à 16:12:41  profilanswer
 

rocodido a écrit :

sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi :p)


Ca, c'est pour d'autres SGBD (oracle :??:)
En access, les jointures externes, c'est du LEFT/RIGHT JOIN


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1464244
rocodido
Posté le 24-10-2006 à 16:13:27  profilanswer
 

je ferais du genre (cle = cle primaire de chaque table)
 
select badge.badge, client.nom from badge, client, table_badge where badge.cle = table_badge.cle and table_badge.cle += client.cle
 
 
edit : bon faut la transformer pour Acces alors :(


Message édité par rocodido le 24-10-2006 à 16:14:35
n°1464260
leohnart
Posté le 24-10-2006 à 16:23:41  profilanswer
 

C'est mon pb effectivement... :(:/


---------------
http://kciope.free.fr - retouche de photos
n°1464262
kao98
...
Posté le 24-10-2006 à 16:24:07  profilanswer
 

Bon, ben j'my colle !
 
Si tu veux tous les badges, ça donne :

Code :
  1. SELECT badge.code, employe.code
  2. FROM badge LEFT JOIN badge_employe
  3. ON badge.Code = badge_employe.code_badge


 
Là, ça donne tous les badges, et les éventuels employés possédant un badge (enfin, les codes).


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1464281
leohnart
Posté le 24-10-2006 à 16:39:25  profilanswer
 

kao98 a écrit :

Bon, ben j'my colle !
 
Si tu veux tous les badges, ça donne :

Code :
  1. SELECT badge.code, employe.code
  2. FROM badge LEFT JOIN badge_employe
  3. ON badge.Code = badge_employe.code_badge


 
Là, ça donne tous les badges, et les éventuels employés possédant un badge (enfin, les codes).


Merci pour ton aide, mais j'arrive deja a ca.
 
Le pb vient du fais que je dois recuperer des valeurs de champs qui viennent d'autres tables, j'ai encore 2 tables a rajouter, et je sais pas ou les mettre dans mon instruction sql.


---------------
http://kciope.free.fr - retouche de photos
n°1464312
bpoujol
Posté le 24-10-2006 à 17:13:20  profilanswer
 


SELECT badge.code, employe.code
FROM badge  
 
LEFT JOIN badge_employe
ON badge.Code = badge_employe.code_badge  
 
JOIN ...
ON ...
 
LEFT/RIGHT JOIN ...
ON ...
 
Tu met a la suite dans l'ordre de tes jointures

n°1464365
leohnart
Posté le 24-10-2006 à 18:49:54  profilanswer
 

bpoujol a écrit :

SELECT badge.code, employe.code
FROM badge  
 
LEFT JOIN badge_employe
ON badge.Code = badge_employe.code_badge  
 
JOIN ...
ON ...
 
LEFT/RIGHT JOIN ...
ON ...
 
Tu met a la suite dans l'ordre de tes jointures


ah ok j'essaye ca demain, je vous dirai si je suis arriver a mes fins. en tout cas merci a toutes et a tous  :jap:

n°1464611
leohnart
Posté le 25-10-2006 à 10:38:12  profilanswer
 

Alors voila ce que j'ai ecris :
 
SELECT badge.idbadge, badge.numserie, emp.Nom, emp.Prenom,badge_grp.nomgrp,badge_grp.horaire
FROM emp
RIGHT JOIN badge
ON emp.idbadge=badge.idbadge
JOIN badge_grp
ON badge.numgrp=badge_grp.numgrp

 
et là il me met erreur de syntaxe (operateur absent) dans l'expression :
 
emp.idbadge=badge.idbadge
JOIN badge_grp
ON badge.numgrp=badge_grp.numgrp

 
je suis a 2 doigts de me defenestrer  :sweat: (bon ok je suis au rdc mais kan meme....)


---------------
http://kciope.free.fr - retouche de photos
n°1464616
kao98
...
Posté le 25-10-2006 à 10:45:44  profilanswer
 

Code :
  1. SELECT badge.idbadge, badge.numserie, emp.Nom, emp.Prenom,badge_grp.nomgrp,badge_grp.horaire
  2. FROM emp
  3. RIGHT JOIN badge
  4. ON emp.idbadge=badge.idbadge
  5. INNER JOIN badge_grp
  6. ON badge.numgrp=badge_grp.numgrp


 
Le "INNER" ligne 5


Message édité par kao98 le 25-10-2006 à 10:46:05

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1464617
vttman2
Je suis Open ...
Posté le 25-10-2006 à 10:45:53  profilanswer
 

remplace  
JOIN badge_grp  
par
INNER JOIN badge_grp  
...

n°1464629
leohnart
Posté le 25-10-2006 à 10:58:30  profilanswer
 

j'avais deja essayé mais c pareil :/


---------------
http://kciope.free.fr - retouche de photos
n°1464692
leohnart
Posté le 25-10-2006 à 12:56:20  profilanswer
 

yesssssssssssssssss!! g trouvé en fait fallait ecrire :
 
SELECT badge.idbadge, badge.numserie, emp.Nom, emp.Prenom,badge_grp.nomgrp,badge_grp.horaire  
FROM ((emp  
RIGHT JOIN badge  
ON emp.idbadge=badge.idbadge )
JOIN badge_grp  
ON badge.numgrp=badge_grp.numgrp)  
 
maudites parentheses :kaola:  


---------------
http://kciope.free.fr - retouche de photos
mood
Publicité
Posté le   profilanswer
 


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

  [RESOLU][SQL] Pb de requete vide

 

Sujets relatifs
Requete Acesss, comment ôter les guillemets?Projet SGBD / Access / SQL => Compatibilité logiciels
[Résolu] Afficher une image 'aperçu' de la vidéo[Resolu] [C Linux] poser un verrou sur un fichier
[Résolu] Problème de clic sur textarea ?Conception Client/Serveur (résolu)
[Oracle] - Limitation des varchar2 [Resolu][Résolu] Récupération automatique de fichier sur Internet
Test variable videpblm en php - avec requete sql
Plus de sujets relatifs à : [RESOLU][SQL] Pb de requete vide


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