2017-05-23 10 views
0

Ceci est probablement une copie d'une autre question mais je ne peux pas comprendre comment corriger cette erreur même en suivant les directions des réponses.
J'ai deux tables, et la seconde devrait contenir une partie des colonnes du premier.
Ce sont leurs schémas (considèrent que je suis parti quelques colonnes que je ne ai pas besoin):
Première tableMySQL - "L'opérande doit contenir 1 colonne (s)" déplacer les données vers une autre table

ID | num | acquisto | dataacquisto | descrizione | modello | ubicazione 

Deuxième table

ID | tipo | data | id_bene | descrizione | modello | ubicazione | importo 

Je semplified le premier schéma puisque je cherche juste la méthode pour déplacer les données de la première table vers la seconde.
Le problème est que je ne peux pas définir le champ tipo en utilisant une requête SELECT, mais sa valeur doit être sélectionnée chaque fois que j'exécute la requête.
J'ai essayé avec ce SQL, mais il me retourner cette erreur:

INSERT INTO riepilogo (tipo, data, id_bene, descrizione, modello, ubicazione, importo) VALUES ('CARICO', (SELECT dataacquisto, id, descrizione, modello, ubicazione, acquisto FROM beni)); 

Opérande doit contenir 1 colonne (s)

J'ai essayé avec d'autres requêtes suivant les conseils d'autres questions, mais il n'y a pas de solution qui fonctionne pour moi.
Merci beaucoup et désolé pour mon anglais!

Répondre

1

Incluez la constante dans la requête de sélection elle-même.

Essayez ceci:

insert into riepilogo (
    tipo, 
    data, 
    id_bene, 
    descrizione, 
    modello, 
    ubicazione, 
    importo 
    ) 
select 'CARICO', 
    dataacquisto, 
    id, 
    descrizione, 
    modello, 
    ubicazione, 
    acquisto 
from beni 
+0

fonctionne parfaitement. Merci beaucoup! – DamiToma