2017-06-15 2 views
0

Je souhaite insérer des données de plusieurs tables dans une table avec des valeurs par défaut.Transférer des données d'une table à une autre avec d'autres valeurs (SQL)

Supposons que j'ai 3 tables:

**table1**(col1, col2, col3, col4) 
**table2**(col5, col6) 
**table3**(col7) 

Je veux

insert in table1.col1 -> table2.col5, 
table1.col2 -> table2.col6, 

table1.col3 -> table3.col7, 

table1.col4 -> 'default_value' for some WHERE condition. 

J'ai essayé d'utiliser INSERT INTO...SELECT FROM mais qui me permet d'entrer des valeurs que lorsque toutes les valeurs **table1** sont prises à partir d'autres tables et non pour **"default_value"**. Je ne peux pas utiliser 2 requêtes différentes car toutes les colonnes de table1 ont une contrainte NOT NULL.

Quelqu'un peut-il m'aider à faire avancer ce dossier?

+0

À quoi ressemble la requête que vous avez écrite maintenant? – SQLChao

Répondre

0

Vous n'avez pas montré quelle requête vous avez essayée, ce qui aide les personnes essayant de vous aider à éviter de suggérer quelque chose que vous avez déjà essayé. Cependant, bien que vous ne sachiez pas ce que vous avez essayé, cela devrait fonctionner - c'est certainement le cas pour moi.

INSERT INTO table1 (col1, col2, col3, col4) 
SELECT t2.first_name, t2.age, t3.salary, 'DEFAULT VALUE' 
FROM table2 t2 
     INNER JOIN 
     table3 t3 
     ON t2.rec_id = t3.rec_id