modjoo
Messages postés6Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention 9 juin 2009
-
9 juin 2009 à 11:17
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
9 juin 2009 à 14:34
Bonjour,
Voilà, j'ai peur de poser une question idiote mais là...enfin le ridicule ne tue fort heureusement !
Je fais un select dans une table avec un critère dans le where (jusque là, rien d'extraordinaire)
Sauf que j'aimerai qu'il me ramène les autres lignes lièes à mon critère.
Exemple : une table "commande" ou j'ai plusieurs lignes de commande
commande ligne détail
1 1 a
1 1 b
1 2 c
2 1 a
2 2 b
Ma question : comment ramener toutes les lignes d'une commande quand j'ai un détail "a" ?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 9 juin 2009 à 12:12
Ha heeee non tu veut aussi les autres ligne contenant le num commande à 1 oups
SELECT * FROM "commande" WHERE "commande"."commande" IN (SELECT "commande" FROM "commande" WHERE "détail" = 'a')
ATTENTION l'opérateur IN est TRÈS long à l'exécution sur les grosses tables ;)
Si non il te faudrais une table TMP ou tu place tout les num commande ou un détail est à "a" et tu fait un select grace à elle :
SELECT "commande".* FROM "commande", "TMP" WHERE "commande"."commande" = "TMP"."commande"
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 9 juin 2009 à 12:30
Tiens j'y pense encore plus simple sans table TMP :
SELECT
a.*
FROM
"commande" a,
(SELECT DISTINCT commande as "numco" FROM commande WHERE "détail" = 'a') b
WHERE
a."commande" = b."numco";