Привет. Есть такая проблема. Есть, например, в одной базе данных (SQL) две таблицы - A и B. Там есть много полей... главное значение имеют A.id, B.id1, B.id2.
A.id - первичный ключ для таблицы A, есть B.id первичный для B, но он роли особой не играет, есть также два внешних ключа B.id1 и B.id2 (оба ссылаются на A.id)
Для конкретного A.id данные в таблице B могут как быть, так и нет, это надо учитывать.
То есть таблица B - своего рода хранит односторонние ссылки для отношения многие ко многим (B.id1 => B.id2)
Надо сделать выборку данных из таблицы A (не всю, а по условию WHERE), для вставки данных в другую базу, и параллельно делать выборки из B, где B.id1 = A.id. При этом учитывать, что записи в A, где A.id = B.id2 УЖЕ СУЩЕСТВУЮТ. То есть определить, в каком порядке выбирать/вставлять данные.
Для простоты предположим, что циклических связей (B.id1 => B.id2 и рядышком B.id2 => B.id1) нет, так как с ними задача нерешаемая, я так понял.
Собственно, как запрос строить? :( Возился с SQL, но так и не понял.
p.s. исходная база oracle, если играет какую-то роль.
UPDATE: я так понял, задача нерешаемая в той форме, в которой я озвучил, увы. Ок, буду думать по-другому.