J'ai deux tables table1
et table2
. Ces tables ont des colonnes uniques name
et id
.Instruction Oracle INSERT avec sélection dans différentes tables
J'ai aussi une table de relation/jointure, table1_table2
qui a les colonnes directes table1_id
et table2_id
.
Ce que je veux faire est d'insérer une nouvelle relation dans table1_table2
connaître les name
s des éléments dans table1
et table2
Je veux créer une relation. Mais je dois obtenir leurs id
s pour les insérer dans table_table2
.
Ce que je veux est quelque chose comme ça:
insert into table1_table2 values ((select id from table1 where name = 'some_name'), (select id from table2 where name = 'another_name'))
J'ai aussi essayé d'utiliser
insert into table1_table2 values ((select id from (select id from table1 where name = 'some_name') where rownum=1), (select id from (select id from table2 where name = 'another_name') where rownum=1))
qui a également ne fonctionne pas. Je comprends que je peux d'abord extraire les id
s si nécessaire, mais je préférerais que ce soit dans une déclaration.
Edit: J'ai aussi essayé
insert into table1_table2 values (select t1.id, t2.id from table1 t1, table2 t2 where t1.name = 'some_name' and t2.name = 'another_name')
qui a également ne fonctionne pas
données Exemple:
table1
id name
1 foo
2 bar
table2
id name
1 some
2 data
table1_table2
table1.id table2.id
1 1
et maintenant je veux insérer
table1.id table2.id
2 2
en table1_table2
, mais je d o seulement savoir que l'entrée dans table1
a le name
bar
et l'entrée dans table2
a le name
data
.
Certaines données d'exemple et une vue plus claire des structures de la table peuvent aider. Voulez-vous les ID de chaque table où les noms correspondent - pour tous les noms, ou un spécifique, puisque vous avez montré «nom» comme corrigé? Que faire si un nom n'apparaît que dans l'une ou l'autre table? –
Veuillez expliquer ce que «ne fonctionne pas» signifie. –