Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2232 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ resolu - sql help ] requete sql not in

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ resolu - sql help ] requete sql not in

n°1154243
Kojima_
Posté le 20-07-2005 à 06:56:26  profilanswer
 

Bonjour tout le monde, voila je doit finir mon site pour mon stage et je me heurte a un probleme ... un gros probleme puisque lorsque j'heberge mon serveur mysql en local je n'ai aucun soucis avec mes requetes SQL , sauf que quand je passe sur free mes requetes avec NOT IN NE passe plus....
 
Voici le code php :  
 

Citation :

$requete="SELECT * FROM prix WHERE nom_maison='".$maison."' AND date_1 MINUS ( SELECT date_ariv FROM location WHERE nom_maison='".$maison."') AND date_2 MINUS  ( SELECT date_dpar FROM location WHERE nom_maison='".$maison."') ORDER BY date_1";


 
 
voici ce que sa donne quand c'est envoyer au serveur :
 

Citation :

SELECT * FROM prix WHERE nom_maison='Ghisoni' AND date_1 NOT IN ( SELECT date_ariv FROM location WHERE nom_maison='Ghisoni') AND date_2 NOT IN ( SELECT date_dpar FROM location WHERE nom_maison='Ghisoni') ORDER BY date_1


 
et voila l'erreur que je rentre ça sous php my admin avec free ( alors que chez moi ça marche ):

Citation :

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT date_ariv FROM location WHERE nom_maison='Ghisoni') AND


 
Bref le not in ne passe pas dutout j'arrive pas a savoir pourquoi, alors si vous pouviez m'aider je vous serai vraiment reconnaissant. Merci beaucoup car là j'en peu plus  :kaola:  :kaola:  :kaola:  :kaola:  
 
Ps : désoler pour la syntaxe surement mauvaise, et ma logique surement tiré par les cheveux...


Message édité par Kojima_ le 21-07-2005 à 21:01:32
mood
Publicité
Posté le 20-07-2005 à 06:56:26  profilanswer
 

n°1154690
Beegee
Posté le 20-07-2005 à 13:54:20  profilanswer
 

Les anciennes versions de mySql ne connaissent pas les sous-requêtes.
Ca doit être ton problème ...
 
La solution est de passer par des jointures externes.
 
SELECT *
FROM prix
WHERE nom_maison='Ghisoni'
AND date_1 NOT IN (
  SELECT date_ariv
  FROM location
  WHERE nom_maison='Ghisoni')
AND date_2 NOT IN (
  SELECT date_dpar
  FROM location
  WHERE nom_maison='Ghisoni')
ORDER BY date_1;
 
devient qqch comme :
 
SELECT *
FROM prix p
LEFT JOIN location l1 on l1.date_ariv = prix.date_1
LEFT JOIN location l2 on l2.date_dpar = prix.date_2
WHERE p.nom_maison='Ghisoni'
AND l1.nom_maison='Ghisoni'
AND l2.nom_maison='Ghisoni'
AND l1.date_ariv IS NULL
AND l2.date_ariv IS NULL
ORDER BY p.date_1;
 
(jointures externes, et comparaisons à NULL)
 
Il se peut qu'il y ait des erreurs, ça fait quelque temps que j'utilise plus mySql.

n°1154900
rufo
Pas me confondre avec Lycos!
Posté le 20-07-2005 à 15:47:59  profilanswer
 

je confirme, c'est pas un pb de not in, mais de requêtes imbriquées. Elles sont supportées depuis la version MySql 4.x ;)


Message édité par rufo le 20-07-2005 à 15:48:19
n°1155450
Kojima_
Posté le 21-07-2005 à 00:03:27  profilanswer
 

merci pour vos réponse :)

n°1156518
Kojima_
Posté le 21-07-2005 à 20:59:29  profilanswer
 

merci a tous, j'ai utiliser LEFT JOIN :) et sa marche après une petite modif de la base de donnée :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ resolu - sql help ] requete sql not in

 

Sujets relatifs
[Résolu](j'espère)[JS] fonction de type isset [RESOLU !!] : résultat donné dans un formulaire
[Résolu] un Run bizarreRequete de suppression en cascade
ACCESS requete SQL[HTML/CSS] - Problème d'affichage margin-top: -10px; sous IE [RESOLU]
empecher un retour à la ligne après un <a> [Resolu][RESOLU]document.getElementById().innerHTML = <table>
[Résolu] Vbs+excel :( [RESOLU]affichage bonne identifiant dans tableau
Plus de sujets relatifs à : [ resolu - sql help ] requete sql not in


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR