requete tordue? [sql] - SQL/NoSQL - Programmation
Marsh Posté le 25-06-2002 à 16:44:36
ReplyMarsh Posté le 25-06-2002 à 16:46:51
--greg-- a écrit a écrit : J'ai besoin d'idées... bon j'ai une table avec 3 champs productid status timestamp Donc, pour un produit on a l'evolution de son état. Et je voudrais selectionner les produits qui ont un certain etat(x) mais PAS un autre(y)... l'etat , pour info, etant un integer. j'y arrive po, commet jfé? |
po tout compris !!
Marsh Posté le 25-06-2002 à 16:53:46
Loom the Gloom a écrit a écrit : po tout compris !! |
hmmm
je voudrais faire qqchose comme
SELECT * FROM mestrucs WHERE etat=X and etat!=Y
pour que ça ne me renvoie QUE les entrées pour les productid's qui ont l'etat X mais pas l'etat Y
c plus clair?
Marsh Posté le 25-06-2002 à 16:54:00
--greg-- a écrit a écrit : J'ai besoin d'idées... bon j'ai une table avec 3 champs productid status timestamp Donc, pour un produit on a l'evolution de son état. Et je voudrais selectionner les produits qui ont un certain etat(x) mais PAS un autre(y)... l'etat , pour info, etant un integer. j'y arrive po, commet jfé? |
SELECT Product FROM Table WHERE status=x
Marsh Posté le 25-06-2002 à 16:55:25
Harkonnen a écrit a écrit : SELECT Product FROM Table WHERE status=x |
ben non non
je veux slt les products qui n'ont pas le status Y dans la table
ça ça me renvoie les products qui ont le status Y aussi (dans un autre record, certes)
Marsh Posté le 25-06-2002 à 16:57:34
--greg-- a écrit a écrit : ben non non je veux slt les products qui n'ont pas le status Y dans la table ça ça me renvoie les products qui ont le status Y aussi (dans un autre record, certes) |
j'ai mal compris ? status est soit égal a x, soit égal a y, non ?
sinon tu peux faire :
SELECT product FROM table WHERE status = x AND status NOT IN (SELECT status FROM table WHERE status = y)
Marsh Posté le 25-06-2002 à 17:00:28
Loom the Gloom a écrit a écrit : SELECT * FROM tesTrucs WHERE tonchamp = X and tonChamp <>Y |
nan nan, <> c pareil que != non?
enfin.
Marsh Posté le 25-06-2002 à 17:01:42
Harkonnen a écrit a écrit : j'ai mal compris ? status est soit égal a x, soit égal a y, non ? |
non non justement, il y a plusieurs entrées dans la meme table pour le meme product. le status evolue dans le temps. (y'a une colonne timestamp)
Harkonnen a écrit a écrit : sinon tu peux faire : SELECT product FROM table WHERE status = x AND status NOT IN (SELECT status FROM table WHERE status = y) |
a marche pas non plus
et pour cause, ça ne join pas sur le productid
Marsh Posté le 25-06-2002 à 17:07:50
tu peux me donner un exemple de données se trouvant dans ta table ?
Marsh Posté le 25-06-2002 à 17:09:13
SELECT product FROM table WHERE status = x AND status NOT IN (SELECT product FROM table WHERE status = y)
Marsh Posté le 25-06-2002 à 17:10:19
evode a écrit a écrit : SELECT product FROM table WHERE status = x AND status NOT IN (SELECT product FROM table WHERE status = y) |
mon Dieu !!
te rends tu comptes que tu ne veux pas que status ne soit pas dans une liste de productid ??
Marsh Posté le 25-06-2002 à 17:13:31
evode a écrit a écrit : SELECT product FROM table WHERE status = x AND status NOT IN (SELECT product FROM table WHERE status = y) |
ouéé.
presque
SELECT product FROM table WHERE status = x AND product NOT IN (SELECT product FROM table WHERE status = y)
ça devrait marcher
mais c'est lent.....
Marsh Posté le 25-06-2002 à 17:14:34
SELECT productid FROM table WHERE status=x AND productid NOT IN (SELECT productid FROM table WHERE status=y)
C'est pas plus dur que ca...
Marsh Posté le 25-06-2002 à 17:15:24
--greg-- a écrit a écrit : ouéé. presque SELECT product FROM table WHERE status = x AND product NOT IN (SELECT product FROM table WHERE status = y) ça devrait marcher mais c'est lent..... |
les sous requetes, c'est jamais rapide...
n'empeche que c'était mon idée, la sous requete !
j'ai juste eu du mal a comprendre ce que tu voulais
Marsh Posté le 25-06-2002 à 17:16:08
Harkonnen a écrit a écrit : les sous requetes, c'est jamais rapide... n'empeche que c'était mon idée, la sous requete ! j'ai juste eu du mal a comprendre ce que tu voulais |
vivi mais j'avais déjà essayé... la meme que toi :-)))
Marsh Posté le 25-06-2002 à 17:21:36
SELECT product FROM table WHERE status = x AND product NOT IN (SELECT product FROM table WHERE status = y)
bon maintenant s'il y avait moyen de faire ça avec autre chose qu'une requete imbriquée ça m'arrangerait paske TOAD crashe
merci
Marsh Posté le 25-06-2002 à 18:47:56
bah, tu peu toujours le faire avec des view, mais c'est pas spécialment plus léger
Marsh Posté le 25-06-2002 à 18:49:15
gizmo a écrit a écrit : bah, tu peu toujours le faire avec des view, mais c'est pas spécialment plus léger |
beeeeh ouais ça reviendrait au meme
y'a po moyen de faire un truc dans le style avec un outerleftjoingright?
Marsh Posté le 25-06-2002 à 19:02:48
pffff fait chier j'aurais du repondre a ca avant tout le monde, mais le client est rentré dans la salle ou on bosse j'ai du coupé avant d'avoir pu repondre pour pas me faire gauler sur le net ...
Marsh Posté le 25-06-2002 à 19:44:02
HappyHarry a écrit a écrit : pffff fait chier j'aurais du repondre a ca avant tout le monde, mais le client est rentré dans la salle ou on bosse j'ai du coupé avant d'avoir pu repondre pour pas me faire gauler sur le net ... |
euh , ouais... :-)
et t'as une réponse ? )
Marsh Posté le 25-06-2002 à 19:55:52
--greg-- a écrit a écrit : euh , ouais... :-) et t'as une réponse ? ) |
ben la meme que les autres, une requete ensembliste, avec un bo NOT IN dedans ...
(en fait g du couper paske le client ne sait pas qu'on utilise le net chez lui .. ca le ferait pas )
Marsh Posté le 25-06-2002 à 19:59:28
HappyHarry a écrit a écrit : ben la meme que les autres, une requete ensembliste, avec un bo NOT IN dedans ... (en fait g du couper paske le client ne sait pas qu'on utilise le net chez lui .. ca le ferait pas ) |
oué
ça craint les requetes imbriquées
Marsh Posté le 25-06-2002 à 20:05:09
--greg-- a écrit a écrit : oué ça craint les requetes imbriquées |
ben quand y a pas trop le choix ...
c kel sgbd ?
Marsh Posté le 25-06-2002 à 20:10:43
HappyHarry a écrit a écrit : ben quand y a pas trop le choix ... c kel sgbd ? |
oracle.
de ttes façons j'ai trouvé ce que je voulais savoir mtnt
(je recherchais juste qques infos)
mais bon si t'as une meilleure soluce ça peut tjs servir
Marsh Posté le 25-06-2002 à 16:43:53
J'ai besoin d'idées...
bon
j'ai une table avec 3 champs
productid
status
timestamp
Donc, pour un produit on a l'evolution de son état.
Et je voudrais selectionner les produits qui ont un certain etat(x) mais PAS un autre(y)... l'etat , pour info, etant un integer.
j'y arrive po, commet jfé?