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

Administration MySQL Discussion :

Requête qui ne retourne rien


Sujet :

Administration MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Points : 26
    Points
    26
    Par défaut Requête qui ne retourne rien
    Bonjour a tous,

    J'ai un probleme sur lequel je m'arrache les cheveux, je vous l'explique. Voici la premiere requete, elle fonctionne tout a fait bien, elle a pour but de trouver des gens qui sont assurés sur une certaines periodes avec un numero d'adherent et sur un certain contrat. La requete retourne deux resultats, normal...

    SELECT nom
    FROM `assures`
    JOIN `beneficiaires`
    ON `assures`.`n_adherent` =`beneficiaires`.`n_adherent`
    WHERE `beneficiaires`.`date_depuis_beneficiaire` <= '2006-09-25'
    AND (`beneficiaires`.`date_jusque_beneficiaire` > '2006-09-25'
    OR `beneficiaires`.`date_jusque_beneficiaire` = '0000-00-00')
    AND `assures`.`n_contrat_assure` = '11543/201'
    AND `assures`.`n_adherent` = 'MAI33398';

    Il y a deux tables, la table des assurés, contantn les assures et la table des beneficiaires contenant les beneficiaires de ces assurés les enfants, conjoints...)

    Voici maintenant une seconde requete qui elle ne retourne aucun resultat et donc la difference avec la premiere requete est juste le retrait de la condition:

    AND `assures`.`n_adherent` = 'MAI33398';

    voici donc la requete:

    SELECT nom
    FROM `assures`
    JOIN `beneficiaires` ON `assures`.`n_adherent` = `beneficiaires`.`n_adherent`
    WHERE `beneficiaires`.`date_depuis_beneficiaire` <= '2006-09-25'
    AND ( `beneficiaires`.`date_jusque_beneficiaire` > '2006-09-25' OR `beneficiaires`.`date_jusque_beneficiaire` = '0000-00-00' )
    AND `assures`.`n_contrat_assure` = '11543/201'

    Ceette requete au lieu de ne pas renvoyer de resultats devrait au contraire en renvoyer autant ou d'avantage que la premiere requete, hors elle ne renvoit rien et en me sort pas d'erreur. Je ne comprend pas, mon collegue non plus ne comprend pas, j'espere que vous saurez m'apporter des elements de reponses parce que la on nage et on a un client qui ne comprend pas pourquoi on ne peut pas calculer ce qu'il veut et qui commence a s'impatienter.

    La version de notre mysql est la version 4.1.13.

    Un grand merci d'avance!!!

    Afrique

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Tu es sûr que la requête retourne un jeu d'enregistrements vide, ça serait pas plutôt qu'elle est très lente à s'exécuter ?

    PS : Merci d'utiliser la balise [ code ]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Points : 26
    Points
    26
    Par défaut oui
    Oui je suis sur qu'elle ne retourne rien, et bizarement la requete qui ne retourne rien prend moins de temps a renvoyer sa reponse, j'ai testé depuis un script php, depuis le binaire mysql (sous freebsd) et egalement depuis phpmyadmin.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 71
    Points
    71
    Par défaut
    Vraiment bizzare ton probléme...

    - En essayant avec EXPLAIN ?

    A tester (même si c'est censé renvoyer pareil) :

    - Utiliser USING
    - Mettre le nom des table devant chaque champs

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 24
    Points : 26
    Points
    26
    Par défaut merci a tous
    Merci a tous de vos reponses rapides.


    La solution etait la suivante: la table etait corrompue. En effet dans la semaine j'ai eu un probleme de manque de place sur la partition /
    Je ne sais pas comment mysql a géré ca, mais il s'avere qu'une table qui faisait quelques mega s'est retrouvé a n'en valoir plus qu'un et quelque. En reparant la table, beaucoup d'enregistrements ont disparus mais le fonctionenment bizare que j'avais eu ne s'est plus reproduis des lors. J'ai donc rechargé une sauvegarde et maintenant tout roule.

    Merci donc a tous et surtout: SAUVEGARDEZ REGULIEREMENT!

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

Discussions similaires

  1. Requette adoquery qui ne retourne rIEN
    Par helmis dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/08/2007, 15h19
  2. Select qui ne retourne rien
    Par hunter001 dans le forum SQL
    Réponses: 2
    Dernier message: 12/06/2007, 11h37
  3. fonction qui ne retourne rien, comment c'est possible ?
    Par lOeil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2007, 00h51
  4. [MySQL] Requête qui ne retourne rien
    Par baleiney dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2006, 18h29
  5. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2005, 23h04

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