IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Besoin d'aide pour une requête MySQL


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut Besoin d'aide pour une requête MySQL
    bonjour,
    je me permets de poster ici car je rencontre un petit soucis avec une requete que je dois rentrer sous phpmyadmin.

    voici la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE `products_attributes` 
    SET `pa.options_values_price` = 
    ((`p.products_price`  * 1.1) - (`pa.products_price` * (1-(19,6/100)))
    FROM  `products_attributes` AS `pa`
    INNER JOIN `products` AS `p`
        ON `pa.products_id` = `p.products_id`
    WHERE `pa.options_values_id` = 8
    AND `p.products_image`='123456'
    Mais j'ai un message d'erreur :
    requête SQL:

    UPDATE `products_attributes` SET `pa.options_values_price` = (
    (
    `p.products_price` * 1.1
    ) - ( `pa.products_price` * ( 1 - ( 19, 6 /100 ) ) FROM `products_attributes` AS `pa` INNER JOIN `products` AS `p` ON `pa.products_id` = `p.products_id` WHERE `pa.options_values_id` =8 AND `p.products_image` = '123456789'

    MySQL a réponduocumentation
    #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 'FROM `products_attributes` AS `pa`
    INNER JOIN `products` AS `p`
    ON `pa.pr' at line 4
    Est ce que quelqu'un a une idée de ce qui se passe ?
    On m'a indiqué que ca venait du fait que update + from n'était pas implémenté sur mysql.

    Comment puis je faire pour faire cette requete ?
    Merci d'avance pour vos réponses,
    Amicalement,
    Marc

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 922
    Points : 6 038
    Points
    6 038
    Par défaut
    Il manque une )

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut merci pour ta réponse
    coucou, merci pour ta réponse qi130.

    tu as raison, il manquai une )
    mais cela ne résoud pas le probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    requête SQL:
     
    UPDATE `products_attributes` SET `pa.options_values_price` = (
    (
    `p.products_price` * 1.1
    ) - ( `pa.products_price` * ( 1 - ( 19, 6 /100 ) ) )
    ) FROM `products_attributes` AS `pa` INNER JOIN `products` AS `p` ON `pa.products_id` = `p.products_id` WHERE `pa.options_values_id` =8 AND `p.products_image` = '123456'
     
    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 'FROM  `products_attributes` AS `pa`
    INNER JOIN `products` AS `p`
        ON `pa.pr' at line 5
    aurai tu une autre idée s"il te plait .?
    merci encore pour ton aide

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 922
    Points : 6 038
    Points
    6 038
    Par défaut
    Il est vrai que cette syntaxe n'est pas répertoriée : http://dev.mysql.com/doc/refman/5.0/fr/update.html

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    Merci encore pour ta réponse,

    Zut ... alors le from ne peut etre utilisé de cette facon ?
    il faut faire autrement ?

    Peut etre en faisant just un sélect ?
    je sélectionnerais alors uniquement les produits dont l'image est 123456 et dont options_values_id` =8 ?
    Mais je devrais alors mettre à jour à la main aussi.

    Est ce faisable d'abord :s ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Points : 35
    Points
    35
    Par défaut
    alors j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT `options_values_price` FROM `products_attributes`
    WHERE `products_id` IN  (SELECT `products_id` FROM `products` WHERE `products_image` = '123456789')
    AND `products_id` IN  (SELECT `products_id` FROM `products_attributes` WHERE `options_values_id` ='8');
    Et j'ai bien les champs options_values_price
    Alors j'ai tenté ceci (mais ca ne marche pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     UPDATE `products_attributes` SET `options_values_price` = ( (
    `products_price` FROM `Products` * 1.1
    ) - ( `products_price` * ( 1 - ( 19, 6 /100 ) ) ) WHERE (
    SELECT `options_values_price`
    FROM `products_attributes`
    WHERE `products_id`
    IN (
     
    SELECT `products_id`
    FROM `products`
    WHERE `products_image` = '123456789'
    )
    AND `products_id`
    IN (
     
    SELECT `products_id`
    FROM `products_attributes`
    WHERE `options_values_id` = '8'
    );
     
    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 'from `Products` * 1.1
    ) - ( `products_price` * ( 1 - ( 19, 6 /100 ) ) )
    WHERE ' at line 2

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Cela ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( `pa.products_price` * ( 1 - ( 19.6 /100 ) ) )
    Tu as mis une virgule !

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 037
    Points : 23 784
    Points
    23 784
    Par défaut
    Citation Envoyé par plex Voir le message
    [code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     UPDATE `products_attributes` SET `options_values_price` = ( (
    `products_price` FROM `Products` * 1.1
    ) - ( `products_price` * ( 1 - ( 19, 6 /100 ) ) )
    Bonjour,

    Il y a pas mal de soucis dans la synthaxe...
    Tout d'abord, après FROM, il faut un nom de table (ou une jointure), mais pourquoi mettre un * 1.1...
    Ensuite, il manque une ) après le / 100.

    Si vous nous expliquiez un peu plus en détail le problème ?

    ced

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour une requête de MAJ (modif. de car.)
    Par ptitscrat dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 17h27
  2. besoin d'aide pour une requête
    Par lipao17 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/01/2006, 16h55
  3. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo