Accueil | Aide en ligne | Annuaire | Sécurité | Articles | Astuces | Téléchargements | Association 


Mon compte SOS Ordi

Vous n'êtes pas identifié
[-> S'inscrire à SOS Ordi
[-> Mot de passe perdu ?
S'identifier


Rechercher sur SOS Ordi

Ok

Dans





 Catégories de l'aide en ligne

 Aide en ligne


 Saviez vous que ...

SOS Ordi est une association loi de 1901


 Partenaires

  SOS Ordi > Aide en ligne > Logiciel > Développement > Base de données > mySQL > Problèmes requete sous mySQL 3.23

Problèmes requete sous mySQL 3.23

7 réponse(s)
dont 2 ont aidé spottydj à résoudre son problème

  Problème résolu posté le 28/09/2005 à 20:41
Profil Configuration PC
spottydj


smoking-tux_isb_tux
État : Absent
Bonjour,

j'ai une table BATEAUX, une table PERIODE, et une table TARIFER
Dans BATEAUX j'ai le codebateau etc, dans période j'ai un code période, etc, et dans Tarfier j'ai le codeBateau et le CodePériode en cle primaire, puis un champ tarif.

Avec ça,
j'ai besoin d'une requete qui me permet d'afficher des périodes disponibles pour un bateau... Donc en gros, afficher toutes les périodes qui ne sont pas déjà inscrites dans la table tarifer pour le bateau choisi (le P1630 par ex)

J'ai déjà une requete sous forme de sous-requetes qui fonctionne sous les versions les plus récentes de mySQL, que voici :

select * from PERIODE where CodePeriode not in (select CodePeriode from TARIFER where CodeBateau='P1630')

Elle ne fonctionne pas sous MySQL 3.23, j'aimerai donc savoir s'il est possible d'écrire cette requete avec des jointures, ou de telle manière qu'elle fonctionne sous cette version.
si c'est possible, merci de me communiquer la requete lol.

Ne me demandez pas de mettre à jour le serveur, je ne peux pas clinoeuil.gif (je l'aurai déjà fait en plus)

Merci d'avance !

Edité par spottydj le 28/09/2005 à 20:42

   

Bas de page 


Information

Pour participer vous devez d'abord être membre ou identifié :
[-> M'identifier
[-> Je ne suis pas membre SOS Ordi, je souhaite m'inscrire
[-> J'ai perdu mon mot de passe


  Réponse postée le 28/09/2005 à 21:32
Profil du membre Configuration PC
Winator



État : Absent
Pourquoi se rouler un petit JOIN ?

select PERIODE.* from PERIODE
LEFT JOIN TARIFER ON PERIODE.CodePeriode=TARIFER.CodePeriode
where TARIFER.CodePeriode is NULL;

Avant Windows, je pensais que l'informatique était une science exacte...

  Réponse postée le 28/09/2005 à 22:09
Profil du membre Configuration PC
spottydj



État : Absent
Bon, grace a toi je suis sur une bonne piste, j'ai trouvé le fonctionnement basique de LEFT JOIN sur le net. Cela dit, ma sous requete est plus complexe que celle de l'exemple puisqu'elle a une clause where... qui n'est pas reprise dans ta requete ...

donc je cherche tjrs ...

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 28/09/2005 à 22:12
Profil du membre Configuration PC
demonkill
Modérateur


État : Absent
Il suffit de rajouter un petit :
AND TARIFER.CodeBateau='P1630'

Merci de :
* Lire la charte : http://www.sosordi.net/Depannage/Charte.html . Ne pas poser 2 fois la même question
* Rester courtois, éviter les majuscules et employer un langage clair

  Réponse postée le 28/09/2005 à 22:24
Profil du membre Configuration PC
spottydj



État : Absent
Merci de vos réponses clinoeuil.gif
Grace a des recherches sur LEFT JOIN et des problèmes du même type, j'ai pu trouver ma requete D.gif

Et demonkill a la bonne réponse !!!

Merci à vous deux clinoeuil.gif


Pour info : voici la requete qu fonctionne désormais clinoeuil.gif

SELECT periode.*
FROM periode LEFT JOIN tarifer ON periode.codeperiode = tarifer.codeperiode AND tarifer.codebateau='P1630'
WHERE tarifer.codeperiode is null;

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 28/09/2005 à 22:26
Profil du membre Configuration PC
demonkill
Modérateur


État : Absent
Enfin Winator t'avais donné le gros de la requête clinoeuil.gif

Bizarre cependant que la 1ère ne fontionne pas, que te met t'il ?

Merci de :
* Lire la charte : http://www.sosordi.net/Depannage/Charte.html . Ne pas poser 2 fois la même question
* Rester courtois, éviter les majuscules et employer un langage clair

  Réponse postée le 28/09/2005 à 22:39
Profil du membre Configuration PC
spottydj



État : Absent
La première...

Ben mySQL 3.23 ne gère pas les sous-requetes,
et celle que Winator a donné ne retourne rien, puisque que le where n'est pas traduit.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 28/09/2005 à 23:40
Profil du membre Configuration PC
Winator



État : Absent
Bon, Mr MySQL devra revoir sa doc 3.23. La requête est similaire, nom pour nom, à celle du manuel.

Avant Windows, je pensais que l'informatique était une science exacte...



Haut de page 

 

Version 5.6 | Infos / Contacts | Partenariat | Publicité