2012-02-25 4 views
0

У меня есть около 20 таблиц в одной базе данных, с теми же именами столбцов т.е.Запрос нескольких таблиц с одинаковыми именами столбцов

TeacherName, Предмет, класс и т.д. ...

Теперь я хочу, чтобы запросить все таблицы сразу до отображают все строки, имеющие имя преподавателя, говорят: «Джон Траволта».

Как я могу это сделать? Я видел в некоторых сообщениях СОЮЗ был бы способ сделать это, но так как есть 20 или даже больше таблиц, я хочу, если есть лучший способ сделать это ...

Btw Я использую SQL SERVER COMPACT в WEBMATRIX ....

ответ

2

Невозможно представить себе другой способ сделать это, кроме объединения всех результатов запроса для таблиц. Вопрос, который вам действительно нужно задать самому себе: почему у вас так много таблиц с одинаковыми данными, хранящимися во всех них? Я думаю, что это плохая практика, и у вас должна быть одна таблица с полем, которое будет разделять их или даже таблицы расширений для разных типов строк. Но нижняя строка. Все данные, которые представляют одну и ту же информацию, должны храниться в одной таблице.

+0

: Спасибо за ответ. Ну, на самом деле у меня есть данные для 20 разных разделов колледжа, и поэтому определение остается неизменным для всех ... – user1173468

+1

Итак, почему бы не объединить его в одну большую таблицу и сохранить внешний ключ разделаID, который бы различал разные части ? – Sagi

+0

+1 для консультации по дизайну. Наличие таблицы в одном отделе - не лучший способ заниматься вещами. Создание таблицы для отделов/разделов и использование этого для различения между ними в одной таблице - лучший способ сделать это, чем UNION. –

0

Вам нужно будет использовать Union, если вы хотите сделать это чистым способом SQL.

Есть несколько трюков с использованием EF, наследования и нескольких конфигураций, которые предоставят вам доступ к нескольким таблицам с одинаковыми столбцами через одну коллекцию. Но я не эксперт в этом подходе.

Далее вы можете сделать представление, объединяющее все столбцы со всех ваших таблиц. Однако SQL Server CE не поддерживает представления. Вы можете сделать это, если вы перенесите свой db по крайней мере на SQL Server Express.

И, наконец, вы можете сгенерировать свою инструкцию SQL в своем приложении asp.net с помощью stringbuilder.

+0

Спасибо :) Gawd! Кажется, много! : P В любом случае, спасибо за ответ, больной, тогда попробуйте работать с самим Союзом .... – user1173468