SQL-запрос для поиска уникального элемента в одной из многих таблиц - PullRequest
0 голосов
/ 20 октября 2010

У меня есть необходимость искать элемент, который существует в одной из многих (~ 20) таблиц. Я могу с уверенностью предположить, что элемент существует только в одной из таблиц, все таблицы содержат индекс с одинаковыми именем и значением столбцаtype.

Таблицы различаются по своим столбцам, содержащим один из нескольких возможных типов значений (int, string, binary. etc.)

Какой самый эффективный способ поискапредмет из нескольких предметов, которые соответствуют критериям?Обратите внимание, что для любого соединения НЕТ НЕОБХОДИМОСТИ, так как элемент уникально хранится в одной строке в одной таблице.

1 Ответ

3 голосов
/ 20 октября 2010

SQL UNION с 20+ таблицами, перечисленными в UNION.Вы можете настроить это как представление, а затем использовать представление для выбора.

Для одного изменяющегося столбца вы можете преобразовать все типы в строку для представления.

Например:

CREATE VIEW Combined_Table AS
SELECT keyfield, Cast(Integerb as varchar) as varcharfield
  FROM table1
UNION
SELECT keyfield, varcharfield
  FROM table2
UNION ...

, тогда вы можете использовать представление в виде таблицы:

SELECT keyfield, varcharfield
  FROM Combined_table
 WHERE keyfield = 'key'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...