Jointure et requette sql - SQL/NoSQL - Programmation
Marsh Posté le 06-09-2013 à 08:52:28
Premièrement, réécrire la requête pour faire apparaitre la jointure explicitement (les jointures via la clause WHERE, c'est MAL ). Cette requête devrait être exactement équivalente à la tienne :
Code :
|
Maintenant qu'on a une jointure explicite, on peut facilement changer son type. "INNER JOIN", ça va sortir uniquement les lignes pour lesquels il y a une correspondance. Pour afficher toutes les lignes de la première table, il faut utiliser un "LEFT OUTER JOIN". Ça donne donc :
Code :
|
Marsh Posté le 26-09-2013 à 13:53:19
Un piege à c.n
dans le cas d'un left outer join table2
si dans ta clause where table2.champ1 = XXXX cela ne remontra que les enregistrements répondant à la clause et donc correspondra à un inner...
Tu as aussi l'exception join : qui remonte les champs de la table 1 qui ne sont pas dans la table2.
Guillaume
Marsh Posté le 06-09-2013 à 08:25:14
Bonjour,
J'ai un soucis avec l'utilisation de SQL. je ne suis pas un grand professionnel.
j'ai 2 tables sur ma base de donnée ou je voudrais récupérer des données.
J'ai utilisé Microsoft query.
Je récupère une liste, il y a une jointure entre ces deux tables
une table équipement (contient des ordinateurs) et une table nommé table9 (imprimantes) . J'ai un souci, car si il n'y a pas de liaison entre ces deux tables. Par exemple si mon pc n'a pas d'imprimante, je ne l'aurait pas en resultat de ma requette. Mais je voudrais toute la liste !
SELECT EQUIPMENT.EREQ_CODE as CODE, EQUIPMENT.EREQ_REMARKS as commentaire, EQUIPMENT.EREQ_STRING6 as NOM, TABLE9.FRT9_CODE FROM MABDD.EQUIPMENT EQUIPMENT, MABDD.TABLE9 TABLE9 WHERE EQUIPMENT.EREQ_DESCRIPTION_EXTRA3 = TABLE9.FRT9_DESCRIPTION ORDER BY EQUIPMENT.EREQ_STRING6
Comment faire ?
---------------
je veux tout, tout de suite, et gratuitement ! miladiou !