Pb de requete vide [RESOLU][SQL] - SQL/NoSQL - Programmation
Marsh Posté le 24-10-2006 à 15:11:03
ok je vais me renseigner sur ce "LEFT JOIN", merci de m'avoir mis sur la piste
Marsh Posté le 24-10-2006 à 15:53:07
bpoujol a écrit : C'est avec quel SGBD ? |
j'utilise access
Marsh Posté le 24-10-2006 à 15:56:43
sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi )
Marsh Posté le 24-10-2006 à 15:58:24
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
Marsh Posté le 24-10-2006 à 16:02:35
rocodido a écrit : sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi ) |
J'ai essayé ca, ca ne me donne rien de plus, c'est la premiere fois que j'ecoute parler d'un truc pareil
Marsh Posté le 24-10-2006 à 16:05:27
ta requete me parait bizarre apres le from tu as pas mis Orders.. elle fonctionne ?
Marsh Posté le 24-10-2006 à 16:06:29
ca doit etre un raccourci de ton left join plus rapide à écrire
Marsh Posté le 24-10-2006 à 16:08:27
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
Marsh Posté le 24-10-2006 à 16:12:41
rocodido a écrit : sur la jointure entre ta table de clés et celle des clients, remplace = par += (un truc du genre quoi ) |
Ca, c'est pour d'autres SGBD (oracle )
En access, les jointures externes, c'est du LEFT/RIGHT JOIN
Marsh Posté le 24-10-2006 à 16:13:27
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
Marsh Posté le 24-10-2006 à 16:23:41
ReplyMarsh Posté le 24-10-2006 à 16:24:07
Bon, ben j'my colle !
Si tu veux tous les badges, ça donne :
Code :
|
Là, ça donne tous les badges, et les éventuels employés possédant un badge (enfin, les codes).
Marsh Posté le 24-10-2006 à 16:39:25
kao98 a écrit : Bon, ben j'my colle !
|
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.
Marsh Posté le 24-10-2006 à 17:13:20
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
Marsh Posté le 24-10-2006 à 18:49:54
bpoujol a écrit : SELECT badge.code, employe.code |
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
Marsh Posté le 25-10-2006 à 10:38:12
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 (bon ok je suis au rdc mais kan meme....)
Marsh Posté le 25-10-2006 à 10:45:44
Code :
|
Le "INNER" ligne 5
Marsh Posté le 25-10-2006 à 10:58:30
ReplyMarsh Posté le 25-10-2006 à 12:56:20
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
Marsh Posté le 24-10-2006 à 14:04:48
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