J'utilise un INSERT .. SELECT pour 'dupliquer' les lignes d'une table (avec une clé étrangère différente).MYSQL Insérer .. Sélectionner - Plusieurs lignes et tables avec des clés étrangères?
Cela fonctionne très bien, mais il insère plusieurs lignes et je dois maintenant faire un autre INSERT pour insérer plusieurs lignes qui sont liées à chaque ligne dans le précédent SELECT ... cela a-t-il même un sens? Haha.
Fondamentalement, il existe une relation de un à plusieurs entre table1 et table2. Il existe une relation un à un entre table1 et table3. J'affecte des lignes de table1 (et de leurs lignes liées de table2) à une nouvelle ligne sur table3 (j'ai le mysql_insert_id pour celui-ci). J'essaye de le faire avec le moins de requêtes possible.
Je vais vous donner un exemple,
Vous avez une table products
une table options
et une table option_items
. Chaque option
a plusieurs option_items
et chaque product
peut avoir plusieurs options
appliqués.
Product1
a l'option Colour
qui lui est appliquée, et se compose des produits Colour
Blue
et Green
, Product1
a également l'option qui lui est appliquée Size
qui présente les éléments Small
et Large
. Je souhaite dupliquer le produit avec un nouvel ID, ce qui implique de dupliquer les lignes dans les tables options
et option_items
et de recréer leurs clés étrangères associées.
J'ai créé le nouveau produit et ai le productid.
Maintenant, je besoin de dupliquer les options obtenir l'ID du nouveau option
, dupliquer les éléments et attribuer l'ID du nouveau option
au items
(maintenant la possibilité de relations d'article).
Toute aide serait grandement appréciée!
non, n'a pas de sens. S'il vous plaît modifier et fournir des exemples de données. – longneck
J'ai ajouté un exemple pour aider, je l'espère. – Joel
S'il vous plaît ajouter le tableau DDL et exemples de requêtes (ceux que vous avez pu comprendre jusqu'à présent) afin que nous puissions visualiser ce que vous essayez de faire. Sinon, c'est trop difficile de répondre. –