cognotte Posté 28 Décembre 2005 Partager Posté 28 Décembre 2005 (modifié) Bonjour, Je suis en train de m'arracher les cheveux sur une requete qui fonctionnait tres bien sur mon ancien serveur (MySQL 4.1.11) et qui plante sur le nouveau (MySQL 4.0.25)! Voici la requete en question : SELECT CMD.id, `id_client` , `date_paiement` , `date_expedition` , `reference` , `prix` , `fr_port` , `moyen_paiement` , `numero_collissimo` , `status` , `adr_nom` , `adr_prenom` , `adr_ad1` , `adr_cp` , `adr_ville` , `adr_pays` , `OK` , CMD.comment, `mail` , `produit`FROM `commande_tb` CMD, `client_tb` CLIWHERE `reference` != ''AND CMD.idIN (SELECT `id`FROM `commande_tb`WHERE `id` = '-1'OR `id` = '3905'OR `id` = '3918'OR `id` = '3919'OR `id` = '3934'OR `id` = '3953'OR `id` = '3931'OR `id` = '3928'OR `id` = '3926'OR `id` = '3946'OR `id` = '3935'OR `id` = '3959'OR `id` = '3988'OR `id` = '3974'OR `id` = '3903'OR `id` = '3672')AND CMD.id_client = CLI.idORDER BY `date_achat` ASC et l'erreur : #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 `id` FROM `commande_tb` WHERE `id` = '-1' OR `id` = ' Quels sont les changements entre les deux versions de mysql qui provoquent ce genre d'erreur ??? Modifié 28 Décembre 2005 par cognotte Lien vers le commentaire Partager sur d’autres sites More sharing options...
Grominet Posté 28 Décembre 2005 Partager Posté 28 Décembre 2005 Les requêtes imbriquées ne fonctionneront qu'avec une version de MySQL 4.1 ou sup. Il faudra formuler les requêtes autrement : http://dev.mysql.com/doc/refman/5.0/fr/rew...subqueries.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
cognotte Posté 28 Décembre 2005 Auteur Partager Posté 28 Décembre 2005 Forcément je pouvais toujours chercher ! Merci de l'info Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 28 Décembre 2005 Partager Posté 28 Décembre 2005 Elle sert à quoi la sous-requête ? ce ne serait pas plus simple ça : SELECT CMD.id, `id_client` , `date_paiement` , `date_expedition` , `reference` , `prix` , `fr_port` , `moyen_paiement` , `numero_collissimo` , `status` , `adr_nom` , `adr_prenom` , `adr_ad1` , `adr_cp` , `adr_ville` , `adr_pays` , `OK` , CMD.comment, `mail` , `produit`FROM `commande_tb` CMD, `client_tb` CLIWHERE `reference` != ''AND CMD.idIN ('-1', '3905', etc.... )AND CMD.id_client = CLI.idORDER BY `date_achat` ASC je n'arrrive vraiment pas à comprendre à quoi sert le second select ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
cognotte Posté 28 Décembre 2005 Auteur Partager Posté 28 Décembre 2005 Oula oui, ca marche beaucoup mieux Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant