Bonjour,
Voilà, je voudrais réaliser une requête en une seule opération.
J'ai une base de données contenant des résultats de compétition et je
voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats
de toutes les personnes ayant participé aux mêmes épreuves.
Actuellement, je le fais en 2 étapes :
je fais un filtrage sur la personne
select numcourse from resultats where competiteur='leonick'
ensuite je créé une 2 requête
qui fait select * from resultats where numcourse in (
et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois
select * from resultats where numcourse in (select numcourse from
resultats where competiteur='leonick')
mais MySQL refuse d'exécuter cette commande.
Est-ce normal ?
Merci
--
Leonick
http://diaporama.champignytriathlon.org diaporama de photos d'Irlande, du
Queyras, du Ventoux et d'Avignon
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alain Chappuis
Leonick a écrit :
Bonjour, Voilà, je voudrais réaliser une requête en une seule opération. J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves. Actuellement, je le fais en 2 étapes : je fais un filtrage sur la personne select numcourse from resultats where competiteur='leonick' ensuite je créé une 2 requête qui fait select * from resultats where numcourse in ( et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois select * from resultats where numcourse in (select numcourse from resultats where competiteur='leonick') mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
AC -- Alain Chappuis (Remove: pouriel to answer me in my address!) Université de Genève /Faculté de Médecine/Service Informatique http://www.sifm.unige.ch/presentation/alain.php
Leonick a écrit :
Bonjour,
Voilà, je voudrais réaliser une requête en une seule opération.
J'ai une base de données contenant des résultats de compétition et je
voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats
de toutes les personnes ayant participé aux mêmes épreuves.
Actuellement, je le fais en 2 étapes :
je fais un filtrage sur la personne
select numcourse from resultats where competiteur='leonick'
ensuite je créé une 2 requête
qui fait select * from resultats where numcourse in (
et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois
select * from resultats where numcourse in (select numcourse from
resultats where competiteur='leonick')
mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
AC
--
Alain Chappuis (Remove: pouriel to answer me in my address!)
Université de Genève /Faculté de Médecine/Service Informatique
http://www.sifm.unige.ch/presentation/alain.php
Bonjour, Voilà, je voudrais réaliser une requête en une seule opération. J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves. Actuellement, je le fais en 2 étapes : je fais un filtrage sur la personne select numcourse from resultats where competiteur='leonick' ensuite je créé une 2 requête qui fait select * from resultats where numcourse in ( et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois select * from resultats where numcourse in (select numcourse from resultats where competiteur='leonick') mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
AC -- Alain Chappuis (Remove: pouriel to answer me in my address!) Université de Genève /Faculté de Médecine/Service Informatique http://www.sifm.unige.ch/presentation/alain.php
Leonick
"Alain Chappuis" a écrit dans le message de news:4189dc83$
Leonick a écrit : > Bonjour, > Voilà, je voudrais réaliser une requête en une seule opération. > J'ai une base de données contenant des résultats de compétition et je > voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves. > Actuellement, je le fais en 2 étapes : > je fais un filtrage sur la personne > select numcourse from resultats where competiteur='leonick' > ensuite je créé une 2 requête > qui fait select * from resultats where numcourse in ( > et je boucle sur la requête précédente pour rentrer les numéros de
courses
> > Alors que je voudrais le faire en une seule fois > select * from resultats where numcourse in (select numcourse from > resultats where competiteur='leonick') > mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
C'est à dire ?
-- Leonick http://diaporama.champignytriathlon.org diaporama de photos d'Irlande, du Queyras, du Ventoux et d'Avignon
"Alain Chappuis" <Alain.Chappuis@medecine.unige.ch.pouriel> a écrit dans le
message de news:4189dc83$1@nntp.unige.ch...
Leonick a écrit :
> Bonjour,
> Voilà, je voudrais réaliser une requête en une seule opération.
> J'ai une base de données contenant des résultats de compétition et je
> voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves.
> Actuellement, je le fais en 2 étapes :
> je fais un filtrage sur la personne
> select numcourse from resultats where competiteur='leonick'
> ensuite je créé une 2 requête
> qui fait select * from resultats where numcourse in (
> et je boucle sur la requête précédente pour rentrer les numéros de
courses
>
> Alors que je voudrais le faire en une seule fois
> select * from resultats where numcourse in (select numcourse from
> resultats where competiteur='leonick')
> mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
C'est à dire ?
--
Leonick
http://diaporama.champignytriathlon.org diaporama de photos d'Irlande, du
Queyras, du Ventoux et d'Avignon
"Alain Chappuis" a écrit dans le message de news:4189dc83$
Leonick a écrit : > Bonjour, > Voilà, je voudrais réaliser une requête en une seule opération. > J'ai une base de données contenant des résultats de compétition et je > voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves. > Actuellement, je le fais en 2 étapes : > je fais un filtrage sur la personne > select numcourse from resultats where competiteur='leonick' > ensuite je créé une 2 requête > qui fait select * from resultats where numcourse in ( > et je boucle sur la requête précédente pour rentrer les numéros de
courses
> > Alors que je voudrais le faire en une seule fois > select * from resultats where numcourse in (select numcourse from > resultats where competiteur='leonick') > mais MySQL refuse d'exécuter cette commande.
Il faut qualifier le nom de la table.champs puis cela fonctionnera.
C'est à dire ?
-- Leonick http://diaporama.champignytriathlon.org diaporama de photos d'Irlande, du Queyras, du Ventoux et d'Avignon
Jerome PAULIN
Leonick wrote:
Bonjour, Voilà, je voudrais réaliser une requête en une seule opération. J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves. Actuellement, je le fais en 2 étapes : je fais un filtrage sur la personne select numcourse from resultats where competiteur='leonick' ensuite je créé une 2 requête qui fait select * from resultats where numcourse in ( et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois select * from resultats where numcourse in (select numcourse from resultats where competiteur='leonick') mais MySQL refuse d'exécuter cette commande.
Est-ce normal ? Merci
Je ne suis pas sur que MySQL (du moins, dans ta version), accepte les sous requetes (c'est recent comme ajout il me semble)...
gg
Leonick wrote:
Bonjour,
Voilà, je voudrais réaliser une requête en une seule opération.
J'ai une base de données contenant des résultats de compétition et je
voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats
de toutes les personnes ayant participé aux mêmes épreuves.
Actuellement, je le fais en 2 étapes :
je fais un filtrage sur la personne
select numcourse from resultats where competiteur='leonick'
ensuite je créé une 2 requête
qui fait select * from resultats where numcourse in (
et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois
select * from resultats where numcourse in (select numcourse from
resultats where competiteur='leonick')
mais MySQL refuse d'exécuter cette commande.
Est-ce normal ?
Merci
Je ne suis pas sur que MySQL (du moins, dans ta version), accepte les
sous requetes (c'est recent comme ajout il me semble)...
Bonjour, Voilà, je voudrais réaliser une requête en une seule opération. J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves. Actuellement, je le fais en 2 étapes : je fais un filtrage sur la personne select numcourse from resultats where competiteur='leonick' ensuite je créé une 2 requête qui fait select * from resultats where numcourse in ( et je boucle sur la requête précédente pour rentrer les numéros de courses
Alors que je voudrais le faire en une seule fois select * from resultats where numcourse in (select numcourse from resultats where competiteur='leonick') mais MySQL refuse d'exécuter cette commande.
Est-ce normal ? Merci
Je ne suis pas sur que MySQL (du moins, dans ta version), accepte les sous requetes (c'est recent comme ajout il me semble)...
gg
P'tit Marcel
Leonick wrote:
J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur FROM resultats AS r1 INNER JOIN resultats AS r2 ON r1.numcourse = r2.numcourse WHERE r2.competiteur = 'tartempion'
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si c'est une erreur, tu peux ajouter AND r2.competiteur <> r1.competiteur
les sous-requetes sont dispo dans les dernières versions de MySQL mais là c'est inutile puisqu'un JOIN suffit (et qu'un JOIN généralement plus rapide que des requêtes imbriquées).
Leonick wrote:
J'ai une base de données contenant des résultats de compétition et je
voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats
de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur
FROM resultats AS r1
INNER JOIN resultats AS r2
ON r1.numcourse = r2.numcourse
WHERE r2.competiteur = 'tartempion'
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si
c'est une erreur, tu peux ajouter
AND r2.competiteur <> r1.competiteur
les sous-requetes sont dispo dans les dernières versions de MySQL mais
là c'est inutile puisqu'un JOIN suffit (et qu'un JOIN généralement plus
rapide que des requêtes imbriquées).
J'ai une base de données contenant des résultats de compétition et je voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les résultats de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur FROM resultats AS r1 INNER JOIN resultats AS r2 ON r1.numcourse = r2.numcourse WHERE r2.competiteur = 'tartempion'
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si c'est une erreur, tu peux ajouter AND r2.competiteur <> r1.competiteur
les sous-requetes sont dispo dans les dernières versions de MySQL mais là c'est inutile puisqu'un JOIN suffit (et qu'un JOIN généralement plus rapide que des requêtes imbriquées).
Leonick
"P'tit Marcel" a écrit dans le message de news:418aad1d$0$4517$
Leonick wrote: > J'ai une base de données contenant des résultats de compétition et je > voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur FROM resultats AS r1 INNER JOIN resultats AS r2 ON r1.numcourse = r2.numcourse WHERE r2.competiteur = 'tartempion'
Nickel, c'est tout bon
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si c'est une erreur, tu peux ajouter AND r2.competiteur <> r1.competiteur
Non, ce n'est pas une erreur, car je veux en cas de filtrage sur une personne pouvoir afficher les résultats de tous les compétiteurs ayant été aux mêmes courses que la personne.
-- Leonick http://www.champignytriathlon.org plus de 100 récits d'épreuves (triathlons, raid, càp, ...) par 25 contributeurs
"P'tit Marcel" <geononauxspams@centrale-lyon.org> a écrit dans le message de
news:418aad1d$0$4517$626a14ce@news.free.fr...
Leonick wrote:
> J'ai une base de données contenant des résultats de compétition et je
> voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur
FROM resultats AS r1
INNER JOIN resultats AS r2
ON r1.numcourse = r2.numcourse
WHERE r2.competiteur = 'tartempion'
Nickel, c'est tout bon
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si
c'est une erreur, tu peux ajouter
AND r2.competiteur <> r1.competiteur
Non, ce n'est pas une erreur, car je veux en cas de filtrage sur une
personne pouvoir afficher les résultats de tous les compétiteurs ayant été
aux mêmes courses que la personne.
--
Leonick
http://www.champignytriathlon.org plus de 100 récits d'épreuves (triathlons,
raid, càp, ...) par 25 contributeurs
"P'tit Marcel" a écrit dans le message de news:418aad1d$0$4517$
Leonick wrote: > J'ai une base de données contenant des résultats de compétition et je > voudrais qu'en cas de filtrage sur un nom, on puisse récupérer les
résultats
> de toutes les personnes ayant participé aux mêmes épreuves.
MySQL toutes versions :
SELECT r1.competiteur FROM resultats AS r1 INNER JOIN resultats AS r2 ON r1.numcourse = r2.numcourse WHERE r2.competiteur = 'tartempion'
Nickel, c'est tout bon
Dans ton exemplen tu renvois aussi le nom du compétiteur d'origine. si c'est une erreur, tu peux ajouter AND r2.competiteur <> r1.competiteur
Non, ce n'est pas une erreur, car je veux en cas de filtrage sur une personne pouvoir afficher les résultats de tous les compétiteurs ayant été aux mêmes courses que la personne.
-- Leonick http://www.champignytriathlon.org plus de 100 récits d'épreuves (triathlons, raid, càp, ...) par 25 contributeurs