web-dev-qa-db-fra.com

Insérer des données dans la table avec le résultat d'une autre requête de sélection

Je demande de l'aide sur le problème suivant: J'ai deux tables Table_1 les colonnes sont itemid, locationid, quantity

Les colonnes Table_2 sont itemid, location1, location2, location3

Je souhaite copier des données de Table_1 (colonne quantity uniquement) dans Table_2 (dans la colonne location1). Les itemid sont identiques dans les deux tables (Table_1 possède des ID d’article en double), c’est la raison pour laquelle je souhaite copier dans une nouvelle table et conserver toutes les quantités sur une seule ligne avec chaque emplacement sous forme de colonne. J'utilise la requête ci-dessous mais cela ne fonctionne pas

INSERT INTO 
Table_2(location1) 
(
 SELECT qty 
 FROM Table_1 
 WHERE locationid = 1 AND Table_1.locationid = Table_2.locationid
)
41
mmdel

Si table_2 est vide, essayez l'instruction insert suivante:

insert into table_2 (itemid,location1) 
select itemid,quantity from table_1 where locationid=1

Si table_2 contient déjà les valeurs itemid, essayez cette instruction de mise à jour:

update table_2 set location1=
(select quantity from table_1 where locationid=1 and table_1.itemid = table_2.itemid)
91
Aziz Shaikh
INSERT INTO `test`.`product` ( `p1`, `p2`, `p3`) 
SELECT sum(p1), sum(p2), sum(p3) 
FROM `test`.`product`;
0
Sanjit Majee