par
albat » 01 nov. 2005, 15:24
N'oublie pas d'afficher ton code formaté grâce aux balises
ou [code ], merci.
[php]$rq_01 = "SELECT DISTINCT D.id_date, C.id_concert
FROM concert_date D, concert C, concert_groupe G
WHERE D.id_concert = C.id_concert
AND G.id_concert = C.concert
ORDER BY $tri
LIMIT $deb, $fin";
$rq_02 = "SELECT DISTINCT D.id_date, C.id_concert
FROM concert C INNER JOIN concert_date D on (D.id_concert = C.id_concert)
INNER JOIN concert_groupe G on (G.id_concert = C.id_concert)
ORDER BY $tri
LIMIT $deb, $fin";
Les résultats de tes requêtes seront identiques.
Ces deux requêtes sont donc équivalentes.
Cependant, la 2e est effectivement plus "élégante"
car les jointures sont plus vite traitées que les clauses WHERE
(que l'on devrait n'utiliser que pour des tests de valeurs)
C'est donc une question d'optimisation.
Mais les différences de performances risquent fort d'être imperceptibles.
Tu as donc le choix entre ces deux écritures.

N'oublie pas d'afficher ton code formaté grâce aux balises [php ] ou [code ], merci.
[php]$rq_01 = "SELECT DISTINCT D.id_date, C.id_concert
FROM concert_date D, concert C, concert_groupe G
WHERE D.id_concert = C.id_concert
AND G.id_concert = C.concert
ORDER BY $tri
LIMIT $deb, $fin";
$rq_02 = "SELECT DISTINCT D.id_date, C.id_concert
FROM concert C INNER JOIN concert_date D on (D.id_concert = C.id_concert)
INNER JOIN concert_groupe G on (G.id_concert = C.id_concert)
ORDER BY $tri
LIMIT $deb, $fin";[/php]
Les résultats de tes requêtes seront identiques.
Ces deux requêtes sont donc équivalentes.
Cependant, la 2e est effectivement plus "élégante"
car les jointures sont plus vite traitées que les clauses WHERE
(que l'on devrait n'utiliser que pour des tests de valeurs)
C'est donc une question d'optimisation.
Mais les différences de performances risquent fort d'être imperceptibles.
Tu as donc le choix entre ces deux écritures. ;)