salut les amis
j'ai 3 tables :
client
dossier_client
dossier
et je veux faire une jointure et récupérer tout les clients même ceux qui n'ont pas de dossier (pas de dossier_client)
salut les amis
j'ai 3 tables :
client
dossier_client
dossier
et je veux faire une jointure et récupérer tout les clients même ceux qui n'ont pas de dossier (pas de dossier_client)
Je te conseille de regarder les tuto sur les jointures externes.
~ Lola ~
Il n'y a strictement aucune difficulté dans ce que tu veux faire, purement de la base en SQL...
Je parie que les trois quarts des développeurs ne savent pas écrire cette requête.
yous18, qu'avez-vous commencé à écrire à l'aide du tutoriel fourni par lola06 ?
Email : http://scr.im/waldar
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
75% je me demande même si je ne suis pas trop optimiste !
Ceux qui doutent, vous pouvez m'envoyer un MP.
Pour la syntaxe :
client (id_client, nom_client)
dossier (id_dossier, nom dossier)
dossier_client (id_dossier, id_client)
Avec les PK en gras, les FK en souligné, et les index qui vont bien.
Email : http://scr.im/waldar
Un petit jeu de test :
Faut arriver à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 WITH client AS (SELECT ROWNUM id_client, 'Client '|| ROWNUM nom_client FROM user_tables WHERE ROWNUM < 5), dossier AS (SELECT ROWNUM id_dossier, 'Dossier '|| ROWNUM nom_dossier FROM user_tables WHERE ROWNUM < 10), dossier_client AS (SELECT 1 id_dossier, 1 id_client FROM dual UNION ALL SELECT 2, 1 FROM dual UNION ALL SELECT 2, 2 FROM dual UNION ALL SELECT 4, 4 FROM dual ) SELECT ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ID_CLIENT NOM_CLIENT ID_DOSSIER NOM_DOSSIER 1 Client 1 1 Dossier 1 1 Client 1 2 Dossier 2 2 Client 2 2 Dossier 2 3 Client 3 4 Client 4 4 Dossier 4
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
Je parie que les trois quarts des développeurs ne savent pas écrire cette requête.
Il n'y a pas vraiment de difficultés flagrantes tout de même, juste un piège dans lequel il ne faut pas tomber
Le gars ne sait pas, alors il demande.
ANSI Syntax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 WITH client AS ( SELECT ROWNUM AS id_client, 'Client '|| ROWNUM AS nom_client FROM all_tables WHERE ROWNUM < 5 ), dossier AS ( SELECT ROWNUM id_dossier, 'Dossier '|| ROWNUM nom_dossier FROM all_tables WHERE ROWNUM < 10 ), dossier_client AS ( SELECT 1 AS id_dossier, 1 AS id_client FROM dual UNION ALL SELECT 2, 1 FROM dual UNION ALL SELECT 2, 2 FROM dual UNION ALL SELECT 4, 4 FROM dual ) -- fin données de test -- -- SELECT c.id_client, c.nom_client, dc.id_dossier, d.nom_dossier FROM client c LEFT JOIN dossier_client dc ON c.id_client = dc.id_client LEFT JOIN dossier d ON d.id_dossier = dc.id_dossier ORDER BY 1;
"Vieille" syntaxe Oracle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 WITH client AS ( SELECT ROWNUM AS id_client, 'Client '|| ROWNUM AS nom_client FROM all_tables WHERE ROWNUM < 5 ), dossier AS ( SELECT ROWNUM id_dossier, 'Dossier '|| ROWNUM nom_dossier FROM all_tables WHERE ROWNUM < 10 ), dossier_client AS ( SELECT 1 AS id_dossier, 1 AS id_client FROM dual UNION ALL SELECT 2, 1 FROM dual UNION ALL SELECT 2, 2 FROM dual UNION ALL SELECT 4, 4 FROM dual ) -- fin données de test -- -- SELECT c.id_client, c.nom_client, dc.id_dossier, d.nom_dossier FROM client c, dossier_client dc, dossier d WHERE c.id_client = dc.id_client (+) AND d.id_dossier(+) = dc.id_dossier ORDER BY 1;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager