cognotte Posté 28 Décembre 2005 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
Grominet Posté 28 Décembre 2005 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
cognotte Posté 28 Décembre 2005 Auteur Posté 28 Décembre 2005 Forcément je pouvais toujours chercher ! Merci de l'info
Spidetra Posté 28 Décembre 2005 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 ?
cognotte Posté 28 Décembre 2005 Auteur Posté 28 Décembre 2005 Oula oui, ca marche beaucoup mieux Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant