crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Rosster
  опции профиля:
сообщение 18.1.2011, 21:23
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 23.11.2009
Пользователь №: 1254

Спасибо сказали: 0 раз(а)




Репутация:   0  


Можно ли в FROM записать какое-либо условие, например, если поле равно тому-то то выборка из такой таблицы,а если нет то из другой таблицы, что-то типа этого:
FROM
WHEN (id=1)
table1
ELSE
table2
при этом все колонки у обоих таблиц совпадают
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MoPDoBoPoT
  опции профиля:
сообщение 20.1.2011, 22:16
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Цитата(Iron Bug @ 19.1.2011, 23:32) *
можно также попробовать выборку с полным join'ом, что-нить типа

Мне кажется имелась ввиду выборка не одного поля, а нескольких.
Цитата(Rosster @ 18.1.2011, 21:23) *
Можно ли в FROM записать какое-либо условие, например, если поле равно тому-то то выборка из такой таблицы,а если нет то из другой таблицы

Так как сущности односхемные, то можно это сделать двумя запросами, объединёнными операцией UNION:
SELECT FIELD_1, ..., FIELD_N
FROM TABLE_1
WHERE ...
UNION ALL
SELECT FIELD_1, ..., FIELD_N
FROM TABLE_2
WHERE ...

Я в примере написал UNION ALL, так как в твоём случае из таблиц выбираются взаимоисключающие записи (по условию), что избавляет СУБД от вложенной проверки на одинаковые записи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.6.2025, 0:36