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 :

Insert avec plusieurs Select


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 128
    Par défaut Insert avec plusieurs Select
    Bonjour,
    j'ai mon script qui fait n'importe quoi pourtant en local il fonctionne super bien.
    donc je me retrouve avec une table ps_product_attribute_shop à moitié remplie il faut que je corrige cela manuellement en Sql.
    j'ai 3 tables ps_product_attribute_shop , ps_imp_item, ps_imp_item_attributes les trois en une chose en commun l'id_product" dans la table "ps_product_attribute_shop " il y a un seule requette envoyé au lieu de plusieurs selon ce qui se trouve dans ps_imp_item, ps_imp_item_attributes plusieurs donnés mais toujours avec même id_product sauf qu'id_product attribute et différend.
    je dois récupérer des infos des deux tables ps_imp_item_attributes, ps_imp_item pour les injecter dans ps_product_attribute_shop , mais le bout de code plus bas ne me donne aucune erreur mais zéro raquette envoyer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    INSERT INTO ps_product_attribute_shop 
    (id_product_attribute, price, id_product, wholesale_price, id_shop)
    SELECT imp_item_attributes.id_declin, imp_item.PriceShop, imp_item.id_product, imp_item.price, imp_item.condition
    FROM ps_imp_item imp_item
    LEFT JOIN ps_imp_item_attributes imp_item_attributes ON imp_item_attributes.id_product = imp_item.id_product 
    WHERE   NOT EXISTS
            (   SELECT  id_product_attribute
                FROM    ps_product_attribute_shop
                WHERE   imp_item_attributes.id_declin != ps_product_attribute_shop.id_product_attribute
            )
    si vous avez une idée et merci d'avance

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 917
    Par défaut
    Salut bygleader.

    C'est votre clause "not exists" qui ne va pas, vous devez mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      WHERE NOT EXISTS  ( SELECT  1
                            FROM  `ps_product_attribute_shop` as t3
                           WHERE  t3.id_product_attribute = t2.id_declin
                        )
    Sinon, je vous propose plus d'utiliser la clause "ON DUPLICATE KEY UPDATE" :
    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
    INSERT INTO `ps_product_attribute_shop` (id_product_attribute, price, id_product, wholesale_price, id_shop)
     
      SELECT             t2.id_declin,
                         t1.PriceShop,
                         t1.id_product,
                         t1.price,
                         t1.condition
     
                         FROM  ps_imp_item as t1
     
                   INNER JOIN  ps_imp_item_attributes as t2
                           ON  t2.id_product = t1.id_product
     
      ON DUPLICATE KEY UPDATE  id_product_attribute = t2.id_declin,
                               price                = t1.PriceShop,
                               id_product           = t1.id_product,
                               wholesale_price      = t1.price,
                               id_shop              = t1.condition;
    @+

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2016
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 128
    Par défaut
    Merci a toi

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

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. Requete INSERT avec plusieurs SELECT
    Par Tinkite82 dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/09/2009, 17h30
  3. Requête : Insert avec plusieurs tables
    Par bleu_ciel dans le forum Access
    Réponses: 4
    Dernier message: 01/06/2006, 21h42
  4. Procédure stockée avec plusieurs SELECT
    Par amatollah dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/03/2006, 21h26
  5. pb d'insertion avec un SELECT sur une autre table
    Par epeichette dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/01/2005, 22h58

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