У меня есть 3 таблицы в Oracle 9i db. A присоединяется к B, а B присоединяется к C. A & C не имеет ничего общего. Я пытаюсь вставить строки в B со значениями как с & C. Я начал с этим:Вставить данные из нескольких таблиц, не связанных друг с другом
INSERT INTO b
(value1,
value2,
value3,
value4)
(SELECT
a.value1,
a.value2,
c.value3,
c.value4
FROM a, c
WHERE a.column1 = x
AND c.column2 = y)
Но поскольку нет соединения между таблицами & с, я получаю гораздо больше строк а не то, что я ожидаю. Есть ли способ разделить два оператора select, чтобы захватить некоторые значения из таблицы и других значений из критериев c? Если да, то какой синтаксис?
Если в столбце col1 = x имеется только одна строка и только одна строка в c, где col2 = y, этот вход должен вводить только одну строку. Если x и y имеют несколько строк, вы должны вставлять строки x * y. Вы можете попробовать Select Distinct, но если значения 1-4 различны для любых строк, все равно будут кратные. – user662852
И почему вы используете этот подразумеваемый синтаксис соединения? Очень плохая практика кодирования. – HLGEM