Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2006, 12h28   #1
Membre à l'essai
 
Inscription : septembre 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 24
Points : 22
Points : 22
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
afrique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2006, 15h24   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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 ]
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2006, 16h14   #3
Membre à l'essai
 
Inscription : septembre 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 24
Points : 22
Points : 22
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.
afrique est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 14h00   #4
Membre du Club
 
Inscription : septembre 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 72
Points : 55
Points : 55
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
big_ben3333 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 18h19   #5
Membre à l'essai
 
Inscription : septembre 2006
Messages : 24
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 24
Points : 22
Points : 22
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!
afrique est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h31.


 
 
 
 
Partenaires

Hébergement Web