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 :

Equivalent en MySQL 4.0 ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 43
    Par défaut Equivalent en MySQL 4.0 ?
    Bonjour,

    J'ai un petit souci avec un requête, j'ai réussi à faire son équivalent en MySQL 4.1 et + mais impossible d'avoir le même résultat en MySQL 4.0 et moins.


    Voici la requête qui me permet d'avoir le résultat obtenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM content
    WHERE dteModification > ( 
    SELECT dteStart
    FROM scheduler_session
    WHERE refRubr = '11'
    ORDER BY dteStart DESC 
    LIMIT 1 ) 
    AND refRubr = '11'
    Par contre, pour MySQL 4.0, j'ai essayé avec des LEFT JOIN etc. mais je pense pas qu'on puisse avoir le même effet en une seule requête. Mais avant de faire deux requête je voulais (pour satisfaction personnelle) savoir s'il était possible de le faire en une ?

    Merci d'avance !

  2. #2
    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 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Et bien si, c'est possible... Enfin, je pense.
    Que fait ta sous-requête ? Elle sélectionne la dteStart la plus récente pour la refRubr 11.
    Ca peut aussi s'écrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select refRubr, max(ss.dteStart) as maxStart
    from scheduler_session ss
    group by refRubr
    Ensuite, tu ne veux que les lignes de la table content dont la date de modification est au-delà de la date renvoyée par la requête ci-dessus.
    Là, pour que ça marche, il va falloir remplace le "*" de ta requête par le nom des champs que tu veux effectivement ramener, pour pouvoir faire un GROUP BY indispensable (au passage, le "*", c'est pas bien ).
    Dans ma requête ci-dessous, j'ai supposé que content avait 3 champs seulement : id, refRubr et dteModification.
    La requête devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select c.id, c.refRubr, c.dteModification
    from scheduler_session ss
    inner join content c on ss.refRubr = c.refRubr
    where c.refRubr = '111'
    group by c.id, c.refRubr, c.dteModification
    having c.dteModification > max(ss.dteStart)
    Si tu as plus de colonnes dans content, il faut les ajouter dans la ligne du SELECT et dans la ligne du GROUP BY.

    Et le tour est joué : pas de table temporaire et une requête compatible 4.0 ou moins...

    ced
    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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 43
    Par défaut
    Ohhhhhhhhh.... l'énorme boulet que je suis.... J'avais même pas pensé au MAX !!

    En tout cas merci, c'est exactement ce que je voulais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. l'equivalent sous mysql
    Par soniaguesmi dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/06/2010, 13h31
  2. Equivalent PHP/MySQL pour des applications
    Par Khleo dans le forum Débuter
    Réponses: 1
    Dernier message: 12/05/2008, 17h59
  3. L'equivalent de "show columns"(MYSQL) en SQL Serve
    Par robluce dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2004, 09h36
  4. Equivalent d'INTERVAL de Mysql
    Par Yann21 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/12/2003, 14h04
  5. Equivalent des SHOW de MySQL
    Par YanK dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/10/2003, 09h15

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