Здравствуйте. Подскажите, возможно ли выбрать такое поле, в котором будет либо поле1 из таблицы 1 либо поле 2 из таблицы 2 и т.д., в зависимости от условия.
Поясню, для чего нужно:
есть таблица номеров телефонов и три различные (по списку полей и количеству записей) таблицы владельцев этих номеров. нужно создать запрос, формирующий новую таблицу, в которой будут отображены все телефонные номера.
как выбрать поле, сдержащее одно из различных полей
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Причём left join если отталкиваться от таблицы номеров, и not null не понадобится, просто если для номера не оказалось владельца, пустые поля будут. Но это, конечно от задачи, может и не надо "бесхозные" номера выводить...mdfv писал(а):join всех таблиц владельцев и формирование выходного поля ч-з case по условию не null (или другое, если есть) нужного поля из таблиц владельцев
Как вариант можно еще union .
Если конечно в таблице телефонов жестко прописан тип владельца, то действительно не нужен.
not null в case может быть условием показа того или иного владельца, если все остальные приджойненные поля владельцев null, иначе не выбрать кого показывать.Причём left join если отталкиваться от таблицы номеров, и not null не понадобится,
Если конечно в таблице телефонов жестко прописан тип владельца, то действительно не нужен.
спасибо за case. насчёт "бесхозных номеров" - таких в таблице нет, обязательно один из трёх таблиц будет владелец. там в таблице PHONES поле PARENT? содержащее ID владельца, у всех таблиц владельцев на ID один общий генератор и триггеры на него.
только не совсем поняла, как писать с кейсом, в обычном запросе в датасете его можно использовать? у Грубера с кейсом как-то непонятно.
только не совсем поняла, как писать с кейсом, в обычном запросе в датасете его можно использовать? у Грубера с кейсом как-то непонятно.