Bonjour,

Voilà j'ai une question bête je voudrais savoir pourquoi ces requêtes fonctionnent :

Contexte :Lister les articles les moins chers (basés sur VENTE.PRIX1) que le moins cher des articles dont le VENTE.CODART commence par R, afficher le PRODUIT.LIBART et le VENTE.PRIX1)

1/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Select P1.LIBART, V1.PRIX1
FROM VENTE V1, PRODUIT P1
where V1.PRIX1 < 
(Select MIN(V1.PRIX1) from VENTE v1 where V1.CODART like 'R%')
and V1.CODART = P1.CODART
GROUP BY P1.LIBART, V1.PRIX1
2/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Select Distinct P1.LIBART, V1.PRIX1
FROM VENTE V1, PRODUIT P1
where V1.PRIX1 < 
(Select MIN(V1.PRIX1) from VENTE v1 where V1.CODART like 'R%')
and V1.CODART = P1.CODART

Alors que celle là, avec une jointure (qui à la base me semblait la plus logique)

3/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Select V1.LIBART, V1.PRIX1
FROM VENTE V1
where V1.PRIX1 < 
(Select MIN(V1.PRIX1) from VENTE v1 where V1.CODART like 'R%')
INNER JOIN
PRODUIT P1
on V1.CODART = P1.CODART
GROUP BY V1.LIBART, V1.PRIX1
Merci par avance pour vos lumière et votre indulgence

Ben