IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Limiter un JOIN à un résultat


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Points : 76
    Points
    76
    Par défaut Limiter un JOIN à un résultat
    Bonjour à tous,

    Je n'arrive pas à écrire une requête qui me rend fou .

    J'ai une table etablissement, qui contient un id, une latitude, une longitude.
    J'ai aussi une table evenement qui contient un id, un etablissement_id, une date.

    J'aimerais en fait que ma requête m'obtienne un et un seul événement par établissement, et que celui-ci possède la date la plus proche de nous possible.

    J'ai essayé plusieurs choses, dont ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT et.latitude, et.longitude, ev.*
    FROM etablissement et
    	JOIN evenement ev ON et.id = ev.etablissement_id
    WHERE ev.date_evenement >= CURDATE()
    ORDER BY ev.date_evenement ASC
    Qui me donne la liste des événements avec la longitude/latitude de l'établissement associé, seulement il n'y a pas qu'un seul événement par établissement. Il faudrait que je puisse obtenir les trois premiers éléments du résultat de ma requête précédente...

    En espérant que quelqu'un puisse m'aider merci pour me consacrer un peu de votre temps !

  2. #2
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Pour obtenir le prochain évènement de chaque établissement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT t.latitude, t.longitude, e.*
    FROM evenement e
    INNER JOIN (SELECT MAX(date_evenement) date_evenement FROM evenement WHERE date_evenement >= CURDATE() GROUP BY etablissement_id) a ON e.date_evenement = a.date_evenement
    INNER JOIN etablissement t ON t.id = e.etablissement_id
    ORDER BY e.date_evenement ASC

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Bonjour,

    C'est une question qui revient souvent sur ce forum... Faites une recherche, vous devriez trouver votre bonheur.
    Sinon, jetez également un œil dans le code source suivant : http://mysql.developpez.com/telechar...aque-categorie
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. [SQLK][T-SQL]Limitation du nombre de résultats
    Par elsuket dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/08/2007, 08h02
  2. La clause LIMIT me renvoie 20 résultats
    Par dafalri dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/08/2006, 15h51
  3. [sql]Limiter le nombre de résultats
    Par Mimo dans le forum Oracle
    Réponses: 3
    Dernier message: 31/01/2006, 15h53
  4. Réponses: 6
    Dernier message: 16/09/2005, 10h53
  5. [XSL] limiter le nombre de résultat ?
    Par MatMeuh dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 31/10/2004, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo