OVH Cloud OVH Cloud

Question SQL

18 réponses
Avatar
Saulot
Bonjour,
J'ai une requete assez complexe à me fader.
La ou ca coince, c'est lorsque je dois recuperer uniquement la première
ligne d'une table par rapport à une autre.

Ma question enf ait est la suivante :
Est-il possible de préciser dans une jointure le nombre de ligne que l'on
souhaite récupérer ?

10 réponses

1 2
Avatar
Bismark Prods
oui je crois que c'est LIMIT !

"Saulot" a écrit dans le message de
news:3f8bede1$0$13276$
Bonjour,
J'ai une requete assez complexe à me fader.
La ou ca coince, c'est lorsque je dois recuperer uniquement la première
ligne d'une table par rapport à une autre.

Ma question enf ait est la suivante :
Est-il possible de préciser dans une jointure le nombre de ligne que l'on
souhaite récupérer ?




Avatar
Zoury
Salut Saulot! :O)

je ne sais pas si ca peux t'aider, mais la requete suivante :

select top 5 nom from personne

sort les 5 premier noms trouves..

si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
exemple de ce que tu souhaites.. ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Saulot" wrote in message
news:3f8bede1$0$13276$
Bonjour,
J'ai une requete assez complexe à me fader.
La ou ca coince, c'est lorsque je dois recuperer uniquement la première
ligne d'une table par rapport à une autre.

Ma question enf ait est la suivante :
Est-il possible de préciser dans une jointure le nombre de ligne que l'on
souhaite récupérer ?




Avatar
Bismark Prods
non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !

Select x from y where z=a LIMIT 0,30

cela ne donne que les trente premiere réponse

"Zoury" a écrit dans le message de
news:
Salut Saulot! :O)

je ne sais pas si ca peux t'aider, mais la requete suivante :

select top 5 nom from personne

sort les 5 premier noms trouves..

si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
exemple de ce que tu souhaites.. ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Saulot" wrote in message
news:3f8bede1$0$13276$
> Bonjour,
> J'ai une requete assez complexe à me fader.
> La ou ca coince, c'est lorsque je dois recuperer uniquement la première
> ligne d'une table par rapport à une autre.
>
> Ma question enf ait est la suivante :
> Est-il possible de préciser dans une jointure le nombre de ligne que


l'on
> souhaite récupérer ?
>
>




Avatar
Saulot
Bonjour,
non non vous ne parlez pas dans le vide...
je ne verifie cependant pas les newsgroups toutes les cinq secondes.

Ceci dit j'ai opté pour la solution "SELECT TOP 1" au lieu d'utiliser
"LIMIT"
le resultat est le meme
"Bismark Prods" a écrit dans le message de news:

non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !

Select x from y where z=a LIMIT 0,30

cela ne donne que les trente premiere réponse

"Zoury" a écrit dans le message de
news:
> Salut Saulot! :O)
>
> je ne sais pas si ca peux t'aider, mais la requete suivante :
>
> select top 5 nom from personne
>
> sort les 5 premier noms trouves..
>
> si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
> exemple de ce que tu souhaites.. ;O)
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> "Saulot" wrote in message
> news:3f8bede1$0$13276$
> > Bonjour,
> > J'ai une requete assez complexe à me fader.
> > La ou ca coince, c'est lorsque je dois recuperer uniquement la


première
> > ligne d'une table par rapport à une autre.
> >
> > Ma question enf ait est la suivante :
> > Est-il possible de préciser dans une jointure le nombre de ligne que
l'on
> > souhaite récupérer ?
> >
> >
>
>




Avatar
ThunderMusic
it makes me think of a problem I alread4y had and I never found the
solution. I want to have lets say the 6th row to the 10th row (I want to
list things by pages), the when I change the page, I want to have the 11th
row to the 15th row. Is there something that can be used or must I go with a
loop and fetch all the table?

thanks

ThunderMusic

"Bismark Prods" wrote in message
news:
non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !

Select x from y where z=a LIMIT 0,30

cela ne donne que les trente premiere réponse

"Zoury" a écrit dans le message de
news:
> Salut Saulot! :O)
>
> je ne sais pas si ca peux t'aider, mais la requete suivante :
>
> select top 5 nom from personne
>
> sort les 5 premier noms trouves..
>
> si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
> exemple de ce que tu souhaites.. ;O)
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> "Saulot" wrote in message
> news:3f8bede1$0$13276$
> > Bonjour,
> > J'ai une requete assez complexe à me fader.
> > La ou ca coince, c'est lorsque je dois recuperer uniquement la


première
> > ligne d'une table par rapport à une autre.
> >
> > Ma question enf ait est la suivante :
> > Est-il possible de préciser dans une jointure le nombre de ligne que
l'on
> > souhaite récupérer ?
> >
> >
>
>




Avatar
BossHog
Salut ,
avant de gueuler regarde ta doc SQL (SQL server 2000) et si tu trouve LIMIT
j'te paye le champagne
@+
Boss
"Bismark Prods" wrote in message
news:
non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !

Select x from y where z=a LIMIT 0,30

cela ne donne que les trente premiere réponse

"Zoury" a écrit dans le message de
news:
> Salut Saulot! :O)
>
> je ne sais pas si ca peux t'aider, mais la requete suivante :
>
> select top 5 nom from personne
>
> sort les 5 premier noms trouves..
>
> si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
> exemple de ce que tu souhaites.. ;O)
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> "Saulot" wrote in message
> news:3f8bede1$0$13276$
> > Bonjour,
> > J'ai une requete assez complexe à me fader.
> > La ou ca coince, c'est lorsque je dois recuperer uniquement la


première
> > ligne d'une table par rapport à une autre.
> >
> > Ma question enf ait est la suivante :
> > Est-il possible de préciser dans une jointure le nombre de ligne que
l'on
> > souhaite récupérer ?
> >
> >
>
>




Avatar
Bismark Prods
Alors tu peux me le payer !

"BossHog" a écrit dans le message de
news:
Salut ,
avant de gueuler regarde ta doc SQL (SQL server 2000) et si tu trouve


LIMIT
j'te paye le champagne
@+
Boss
"Bismark Prods" wrote in message
news:
> non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !
>
> Select x from y where z=a LIMIT 0,30
>
> cela ne donne que les trente premiere réponse
>
> "Zoury" a écrit dans le message de
> news:
> > Salut Saulot! :O)
> >
> > je ne sais pas si ca peux t'aider, mais la requete suivante :
> >
> > select top 5 nom from personne
> >
> > sort les 5 premier noms trouves..
> >
> > si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
> > exemple de ce que tu souhaites.. ;O)
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> > "Saulot" wrote in message
> > news:3f8bede1$0$13276$
> > > Bonjour,
> > > J'ai une requete assez complexe à me fader.
> > > La ou ca coince, c'est lorsque je dois recuperer uniquement la
première
> > > ligne d'une table par rapport à une autre.
> > >
> > > Ma question enf ait est la suivante :
> > > Est-il possible de préciser dans une jointure le nombre de ligne que
> l'on
> > > souhaite récupérer ?
> > >
> > >
> >
> >
>
>




Avatar
ThunderMusic
ah, j'ai vraiment pas de classe. Je suis vraiment trop habitué à écrire en
anglais dans les newsgroups. Je demande pardon à tous ceux que j'ai offencé
en écrivant en anglais dans un group français.

Je traduis:
Ca me fait penser à un problème que j'ai déjà eu et dont je n'ai jamais
trouvé la solution. Je veux disons, du 6ieme enregistrement au 10ieme
enregistrement. ensuite quand je change de page dans mon affichage, je veux
du 11ieme au 15ieme enregistrement et ainsi de suite. Est-ce qu'il y a une
instruction SQL qui pourrait me permettre de faire celà ou je dois m'en
remettre à faire une boucle et à passer tous les enregistrements?

Merci

ThunderMusic

"ThunderMusic" wrote in message
news:
it makes me think of a problem I alread4y had and I never found the
solution. I want to have lets say the 6th row to the 10th row (I want to
list things by pages), the when I change the page, I want to have the 11th
row to the 15th row. Is there something that can be used or must I go with


a
loop and fetch all the table?

thanks

ThunderMusic

"Bismark Prods" wrote in message
news:
> non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !
>
> Select x from y where z=a LIMIT 0,30
>
> cela ne donne que les trente premiere réponse
>
> "Zoury" a écrit dans le message de
> news:
> > Salut Saulot! :O)
> >
> > je ne sais pas si ca peux t'aider, mais la requete suivante :
> >
> > select top 5 nom from personne
> >
> > sort les 5 premier noms trouves..
> >
> > si ce n'est pas ce que tu cherches, donne plus de details ainsi qu'un
> > exemple de ce que tu souhaites.. ;O)
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> > "Saulot" wrote in message
> > news:3f8bede1$0$13276$
> > > Bonjour,
> > > J'ai une requete assez complexe à me fader.
> > > La ou ca coince, c'est lorsque je dois recuperer uniquement la
première
> > > ligne d'une table par rapport à une autre.
> > >
> > > Ma question enf ait est la suivante :
> > > Est-il possible de préciser dans une jointure le nombre de ligne que
> l'on
> > > souhaite récupérer ?
> > >
> > >
> >
> >
>
>




Avatar
Bismark Prods
Si vous ne sélectionnez que quelques lignes avec LIMIT , SQL va utiliser les
index dans certains cas, où il aurait préféré utiliser un scan de table
complet.
Si vous utilisez LIMIT # avec la clause ORDER BY , SQL va arrêter de trier
dès qu'il a trouvé la première # au lieu de trier toute la table.
Lorsque vous combinez LIMIT # avec DISTINCT , SQL va s'arrêter dès qu'il a
trouvé # lignes distinctes.
Dans certains cas, la clause GROUP BY peut être appliquée en lisant les clés
dans l'ordre (ou en faisant un tri sur la clé), puis en calculant un
sommaire, jusqu'à ce que la clé soient modifiée. Dans ce cas, LIMIT # ne va
pas appliquer les éléments non nécessaires de la clause GROUP BY s.
Aussitôt que SQL a envoyé les premières # lignes au client, il annule le
reste de la requête (si vous n'utilisez pas la fonction
SQL_CALC_FOUND_ROWS ).
LIMIT 0 va toujours retourner rapidement un résultat vide. C'est pratique
pour vérifier une requête et lire les types de colonnes du résultat, sans
exécuter réellement la requête.
Lorsque le serveur utilise des tables temporaire pour résoudre les requêtes,
la clause LIMIT # est utilisée pour calculer l'espace nécessaire.


"Bismark Prods" a écrit dans le message de
news:
Alors tu peux me le payer !

"BossHog" a écrit dans le message de
news:
> Salut ,
> avant de gueuler regarde ta doc SQL (SQL server 2000) et si tu trouve
LIMIT
> j'te paye le champagne
> @+
> Boss
> "Bismark Prods" wrote in message
> news:
> > non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !
> >
> > Select x from y where z=a LIMIT 0,30
> >
> > cela ne donne que les trente premiere réponse
> >
> > "Zoury" a écrit dans le message de
> > news:
> > > Salut Saulot! :O)
> > >
> > > je ne sais pas si ca peux t'aider, mais la requete suivante :
> > >
> > > select top 5 nom from personne
> > >
> > > sort les 5 premier noms trouves..
> > >
> > > si ce n'est pas ce que tu cherches, donne plus de details ainsi


qu'un
> > > exemple de ce que tu souhaites.. ;O)
> > >
> > > --
> > > Cordialement
> > > Yanick Lefebvre - MVP pour Visual Basic
> > > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > > http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/
> > > "Saulot" wrote in message
> > > news:3f8bede1$0$13276$
> > > > Bonjour,
> > > > J'ai une requete assez complexe à me fader.
> > > > La ou ca coince, c'est lorsque je dois recuperer uniquement la
> première
> > > > ligne d'une table par rapport à une autre.
> > > >
> > > > Ma question enf ait est la suivante :
> > > > Est-il possible de préciser dans une jointure le nombre de ligne


que
> > l'on
> > > > souhaite récupérer ?
> > > >
> > > >
> > >
> > >
> >
> >
>
>




Avatar
BossHog
Désoler mais j'ai chercher dans "SQL server books online" et NIET pas de
LIMIT
j'ai essayer des query et pareil sa pete ??
alors je serai currieu de voir une démo de LIMIT
@+
Boss



"Bismark Prods" wrote in message
news:#
Si vous ne sélectionnez que quelques lignes avec LIMIT , SQL va utiliser


les
index dans certains cas, où il aurait préféré utiliser un scan de table
complet.
Si vous utilisez LIMIT # avec la clause ORDER BY , SQL va arrêter de trier
dès qu'il a trouvé la première # au lieu de trier toute la table.
Lorsque vous combinez LIMIT # avec DISTINCT , SQL va s'arrêter dès qu'il a
trouvé # lignes distinctes.
Dans certains cas, la clause GROUP BY peut être appliquée en lisant les


clés
dans l'ordre (ou en faisant un tri sur la clé), puis en calculant un
sommaire, jusqu'à ce que la clé soient modifiée. Dans ce cas, LIMIT # ne


va
pas appliquer les éléments non nécessaires de la clause GROUP BY s.
Aussitôt que SQL a envoyé les premières # lignes au client, il annule le
reste de la requête (si vous n'utilisez pas la fonction
SQL_CALC_FOUND_ROWS ).
LIMIT 0 va toujours retourner rapidement un résultat vide. C'est pratique
pour vérifier une requête et lire les types de colonnes du résultat, sans
exécuter réellement la requête.
Lorsque le serveur utilise des tables temporaire pour résoudre les


requêtes,
la clause LIMIT # est utilisée pour calculer l'espace nécessaire.


"Bismark Prods" a écrit dans le message de
news:
> Alors tu peux me le payer !
>
> "BossHog" a écrit dans le message de
> news:
> > Salut ,
> > avant de gueuler regarde ta doc SQL (SQL server 2000) et si tu trouve
> LIMIT
> > j'te paye le champagne
> > @+
> > Boss
> > "Bismark Prods" wrote in message
> > news:
> > > non mais est-ce que je parle dans le vide ? c'est le mot clé LIMIT !
> > >
> > > Select x from y where z=a LIMIT 0,30
> > >
> > > cela ne donne que les trente premiere réponse
> > >
> > > "Zoury" a écrit dans le message de
> > > news:
> > > > Salut Saulot! :O)
> > > >
> > > > je ne sais pas si ca peux t'aider, mais la requete suivante :
> > > >
> > > > select top 5 nom from personne
> > > >
> > > > sort les 5 premier noms trouves..
> > > >
> > > > si ce n'est pas ce que tu cherches, donne plus de details ainsi
qu'un
> > > > exemple de ce que tu souhaites.. ;O)
> > > >
> > > > --
> > > > Cordialement
> > > > Yanick Lefebvre - MVP pour Visual Basic
> > > > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > > > http://www.mentalis.org/agnet/apiguide.shtml -
http://www.mztools.com/
> > > > "Saulot" wrote in message
> > > > news:3f8bede1$0$13276$
> > > > > Bonjour,
> > > > > J'ai une requete assez complexe à me fader.
> > > > > La ou ca coince, c'est lorsque je dois recuperer uniquement la
> > première
> > > > > ligne d'une table par rapport à une autre.
> > > > >
> > > > > Ma question enf ait est la suivante :
> > > > > Est-il possible de préciser dans une jointure le nombre de ligne
que
> > > l'on
> > > > > souhaite récupérer ?
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>




1 2