Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Left join Left join (table intermédiaire)

3 réponses
Avatar
Xavier_B
Bonjour

Je n'arrive pas à faire tourner une requête qui m'a l'air assez simple, mais
j'ai l'impression d'avoir tout essayé.
Voilà : j'ai 3 tables, table1, table2 et une table intermédiaire, que
j'appellerai tableintermediaire

On a :
table1.id_table1=tableintermediaire.id1
table2.id_table2=tableintermediaire.id2

Je cherche tous les enregistrements, avec comme conditions :
table1.nom='Dupont'
tableintermediaire.date='2006-12-25'

Voici ce qui me semble le plus logique, au vu de ce que j'ai trouvé sur la
toile :

$Requete="SELECT * FROM table1 LEFT JOIN tableintermediaire ON
table1.id_table1 = tableintermediaire.id1 LEFT JOIN table2 ON
tableintermediaire.id2 = table2.id_table2 WHERE table1.nom='Dupont' AND
tableintermediaire.date= '2006-12-25'";

Qu'est-ce qui cloche ?

Merci d'avance

3 réponses

Avatar
Xavier_B
L'erreur était ailleurs...
:-P





"Xavier_B" a écrit dans le message de news:
4610fe07$0$27379$
Bonjour

Je n'arrive pas à faire tourner une requête qui m'a l'air assez simple,
mais j'ai l'impression d'avoir tout essayé.
Voilà : j'ai 3 tables, table1, table2 et une table intermédiaire, que
j'appellerai tableintermediaire

On a :
table1.id_table1=tableintermediaire.id1
table2.id_table2=tableintermediaire.id2

Je cherche tous les enregistrements, avec comme conditions :
table1.nom='Dupont'
tableintermediaire.date='2006-12-25'

Voici ce qui me semble le plus logique, au vu de ce que j'ai trouvé sur la
toile :

$Requete="SELECT * FROM table1 LEFT JOIN tableintermediaire ON
table1.id_table1 = tableintermediaire.id1 LEFT JOIN table2 ON
tableintermediaire.id2 = table2.id_table2 WHERE table1.nom='Dupont' AND
tableintermediaire.date= '2006-12-25'";

Qu'est-ce qui cloche ?

Merci d'avance


Avatar
Patrick Texier
Le Mon, 2 Apr 2007 16:41:31 +0200, Xavier_B a écrit :

L'erreur était ailleurs...



C'est bien ce qui me semblait.

Par contre essayez de publier des requêtes lisibles avec des sauts de
lignes entre les clauses et non au milieu :

> $Requete="SELECT * FROM table1 LEFT JOIN tableintermediaire ON
> table1.id_table1 = tableintermediaire.id1 LEFT JOIN table2 ON
> tableintermediaire.id2 = table2.id_table2 WHERE table1.nom='Dupont' AND
> tableintermediaire.date= '2006-12-25'";



Ainsi :

SELECT *
FROM table1
LEFT JOIN tableintermediaire
ON table1.id_table1 = tableintermediaire.id1
LEFT JOIN table2 ON tableintermediaire.id2 = table2.id_table2
WHERE table1.nom='Dupont' AND tableintermediaire.date= '2006-12-25' ;

nb : j'ai indenté le premier ON car la ligne complète dépasse les 72
caractères.

--
Patrick Texier
Base de données libre de résultats de grands-prix.
(F1, GP pre-1950, F2, F3000, GP2, A1GP, IRL, ChampCars...)
<http://www.gpsql.org>
Avatar
Xavier_B
"Patrick Texier" a écrit dans le message de news:

Le Mon, 2 Apr 2007 16:41:31 +0200, Xavier_B a écrit :

L'erreur était ailleurs...



C'est bien ce qui me semblait.

Par contre essayez de publier des requêtes lisibles avec des sauts de
lignes entre les clauses et non au milieu :



Très bien !

Merci d'avoir cherché, et désolé de vous avoir fait perdre du temps pour
rien. A+


> $Requete="SELECT * FROM table1 LEFT JOIN tableintermediaire ON
> table1.id_table1 = tableintermediaire.id1 LEFT JOIN table2 ON
> tableintermediaire.id2 = table2.id_table2 WHERE table1.nom='Dupont' AND
> tableintermediaire.date= '2006-12-25'";



Ainsi :

SELECT *
FROM table1
LEFT JOIN tableintermediaire
ON table1.id_table1 = tableintermediaire.id1
LEFT JOIN table2 ON tableintermediaire.id2 = table2.id_table2
WHERE table1.nom='Dupont' AND tableintermediaire.date= '2006-12-25' ;

nb : j'ai indenté le premier ON car la ligne complète dépasse les 72
caractères.

--
Patrick Texier
Base de données libre de résultats de grands-prix.
(F1, GP pre-1950, F2, F3000, GP2, A1GP, IRL, ChampCars...)
<http://www.gpsql.org>