|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 24 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
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
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 24 ![]() |
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.
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : septembre 2006 Messages : 72 ![]() |
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 |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 24 ![]() |
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! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com