une pitite requete .... [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 26-02-2003 à 10:17:23
Hermes le Messager a écrit : where est ton ami. RTFM |
Bin écoute, t'as réussi à décrypter la question, chapeau Passke moi j'ai rien compris
Marsh Posté le 26-02-2003 à 10:35:12
Taiche a écrit : |
select * from table where n°=2
Marsh Posté le 26-02-2003 à 10:47:23
Suri a écrit : |
c'est l'inverse qu'il veut, mais c'est tout aussi simple
Marsh Posté le 26-02-2003 à 11:22:03
gloop a écrit : |
mais nan..
Citation : bon ici, je dois recuperer comme n°, 2. |
sinon c'est clair que c'est pas tres explicite..
Marsh Posté le 26-02-2003 à 11:24:49
gloop a écrit : |
fo tu m'expliques comment tu fais alors ...
Marsh Posté le 26-02-2003 à 11:27:16
si j'ai bien compris, il veut récupérer les numéros qui possède les enregistrement A et B
Marsh Posté le 26-02-2003 à 11:30:22
Mr yvele a écrit : |
je suis désolé si c pas clair. je voudrais récupérer le n° pour lequel l'ensemble des attributs 'truc' est égale à un ensemble de valeur.
dans l'exemple, si l'ensemle est ('A', 'B' je récupère logiquement d'après la table la valeur 2 (attribut n°)
bon j'espère que c un peu plus clair
Marsh Posté le 26-02-2003 à 11:30:39
Urd-sama a écrit : si j'ai bien compris, il veut récupérer les numéros qui possède les enregistrement A et B |
oui, c ca !
Marsh Posté le 26-02-2003 à 11:56:52
ReplyMarsh Posté le 26-02-2003 à 11:57:12
Hermes le Messager a écrit : where truc='A' AND truc='B' |
Le plus dur c'est pas la requête, c'est de comprendre la question
Marsh Posté le 26-02-2003 à 12:00:55
question posée à 9h47.
réponse donée à 11h39...
Moralité, les forums c'est bien, mais tu aurais sûrement eu ta solution plus vite si tu t'étais un minimum creusé la tête !!!!
Marsh Posté le 26-02-2003 à 12:09:16
Hermes le Messager a écrit : where truc='A' AND truc='B' |
truc='A' OR truc='B'
Bon sang de bois, tu vas l'embrouiller !
Allez, soyons aimable aujourd'hui, et découvrons ensemble ( ceci ne s'adresse plus à Hermes, mais à Kurt Haribo ):
where truc in ( 'A','B' ... )
Marsh Posté le 26-02-2003 à 12:11:02
walli a écrit : question posée à 9h47. |
je sais que j'aurais pu chercher ! mais bon les trucs du genre truc ='a' et truc ='b', tu vois pas quelquechose qui cloche la dedans ?
Marsh Posté le 26-02-2003 à 12:11:48
tomlameche a écrit : |
ESt ce que il y a quelq'un qui connaissent un minimum sql ?
Marsh Posté le 26-02-2003 à 12:11:55
tomlameche a écrit : |
Non je pense que c'est bien AND, il veut que 'truc' ait comme valeur 'A' et comme autre valeur 'B' pour un même 'n°'
Marsh Posté le 26-02-2003 à 12:12:50
arrakis99 a écrit : |
fo m'expliquer comment une instance d'un attribut peut posséder deux valeur ?
Marsh Posté le 26-02-2003 à 12:18:23
Kurt Haribo a écrit : |
Aurai tu tendance à prendre les gens pour des nouilles ?
Marsh Posté le 26-02-2003 à 12:19:08
sinon tu peux faire une intersection avec un select qui prenne les n° avec un 'where truc = A' INTERSECT un autre select qui prenne les n° avec un 'where truc = B'
Tu n'aura comme résultat que les n° qui respectent les deux conditions.
Marsh Posté le 26-02-2003 à 12:19:22
Kurt Haribo a écrit : |
'tain, c'est c'que dit tom, c'est un OR. Teste et pis vala. Ca fait 3 plombes que t'es sur une requête de base ; le jour où t'auras des join, tu vas en chier
Marsh Posté le 26-02-2003 à 12:19:34
tomlameche a écrit : |
nan, mais si c'est pour répondre truc ='A' AND truc='B' ...
Marsh Posté le 26-02-2003 à 12:23:53
Kurt Haribo a écrit : |
Nan mais attends, t'as vu le truc tout con que tu demandes ? Tu t'attendais à quoi, à une requête de 6 lignes ? Ce genre de question, il suffit d'un where et c'est basta. Commence par mater un tutorial SQL, tiens.
Marsh Posté le 26-02-2003 à 12:27:22
arrakis99 a écrit : sinon tu peux faire une intersection avec un select qui prenne les n° avec un 'where truc = A' INTERSECT un autre select qui prenne les n° avec un 'where truc = B' |
Merci, c'etait ca que je cherchai !
Marsh Posté le 26-02-2003 à 12:28:57
Taiche a écrit : |
avec un OR comment veux tu que ca marche ? il va me sortir tous les n° pour lequel truc aurait comme valeur B ou A !
Marsh Posté le 26-02-2003 à 12:31:52
Kurt Haribo a écrit : |
Bin c'est pas c'que tu veux ?
Citation : je voudrais récupérer le n° pour lequel l'ensemble des attributs 'truc' est égale à un ensemble de valeur. |
Ch'ais pas hein, moi c'est c'que j'comprends...
Marsh Posté le 26-02-2003 à 12:43:15
Taiche a écrit :
|
ben non, mais c pas grave avec INTERSECT ca devrai le faire !
désolé, de m'être énervé, je croyais que vous me foutiez de ma tronche avec truc='B' or/and truc='A'
Marsh Posté le 26-02-2003 à 12:53:30
Kurt Haribo a écrit : |
tu t'attendais à quoi avec ta question de base ?
en plus faut comprendre ta question et tu vas gueuler sur ceux qui ont accepté de t'aider. faut pas non plus t'attendre à ce qu'on soit tous sympa avec toi apres ce genre de conneries
Marsh Posté le 26-02-2003 à 12:56:48
oh arretez de vous chamailler
kurt a mal posé sa question mais vous pourriez éviter de se fouttre de sa tronche non plus
Marsh Posté le 26-02-2003 à 12:58:43
gloop a écrit : |
C'est bon, il s'est excusé
Kurt : j'vois toujours pas ce que tu veux faire mais est-ce que c'est pas un truc du genre "je recherche tous les numéros qui ont pour truc A puis parmi ces numéros je cherche ceux qui ont aussi pour truc B" ?
Marsh Posté le 26-02-2003 à 13:04:40
Taiche a écrit : |
oui c ca ! et pis comme sql c loin pour moua, je savais plus si il existait une instruction particulière, j'avais pas envie de m'amuser avec des teta-jointure.
Marsh Posté le 26-02-2003 à 13:05:52
gloop a écrit : |
c bon, je me suis excusé !
Marsh Posté le 26-02-2003 à 13:19:27
Kurt Haribo a écrit : |
Je n'avais pas compris ta question.
tu as une autre solution à mon avis plus simple ( parceque je suis pas sûr du tout que INTERSECT fait partie du standard SQL, et donc ne doit pas être supporté par tous les SGBD ):
select distinct numero
from ma_table t1, ma_table t2
where t1.truc = 'A' and t2.truc = 'B' and
t1.numero = t2.numero
Marsh Posté le 26-02-2003 à 13:31:12
tomlameche a écrit : |
justement INTERSECT ne fait pas parti du standart SQL, mais c pas grave ca devrait marché
et j'avais pensé a faire une teta-jointure, mais ca devient lourd si tu as a comparer 30 'trucs'
Marsh Posté le 26-02-2003 à 14:37:25
tomlameche a écrit : |
Préfère un GROUP BY au SELECT DISTINCT en SQL :
SELECT numero |
Marsh Posté le 26-02-2003 à 15:03:36
BifaceMcLeOD a écrit :
|
Je voudrai pas rentrer dans un débat de type Troll, mais pourquoi donc ?
Citation : explain plan for select distinct machin from truc; |
à comparer à :
Citation : explain plan for select machin from truc group by machin; |
Marsh Posté le 26-02-2003 à 15:32:05
Bon ben ça dépend des SGBD alors. Certains optimisent mieux le GROUP BY, d'autres mieux le DISTINCT.
Mais il me semblait que pour des gros volumes de données, le DISTINCT, impliquant un tri, était plus coûteux en temps. Me trompé-je ?
Marsh Posté le 26-02-2003 à 15:37:59
BifaceMcLeOD a écrit : Bon ben ça dépend des SGBD alors. Certains optimisent mieux le GROUP BY, d'autres mieux le DISTINCT. |
Ben je sais pas en fait ( je rappelle que je ne suis pas vraiment informaticien et mes connaissances el la matière ne sont pas énormes ! ), mais a priori, pour faire un GROUP BY, faut bien faire un tri aussi de toute façon, ce qui va différer c'est la méthode.
Je suppose qu'en fait, ça va dépendre du nombre de valeur effectivement distincte que tu as.
Marsh Posté le 26-02-2003 à 15:55:54
Oui, mais pour autant que je sache, le GROUP BY va faire un tri pendant la construction de l'ensemble résultat, et non pas une fois que l'ensemble résultat est entièrement construit. C'est pour cela qu'il est censé être plus efficace en général.
Marsh Posté le 26-02-2003 à 09:57:30
voila, j'ai une table du type
n° | truc
---------
1 | A
2 | B
3 | B
2 | A
1 | C
et je veut recuperer le n° qui comme "truc" 'A' et 'B'.
bon ici, je dois recuperer comme n°, 2.