Запрос нескольких таблиц с одинаковым именем столбца - PullRequest
0 голосов
/ 25 февраля 2012

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

TeacherName, Subject, Class и т.д ...

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

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

Кстати, я использую SQL SERVERКОМПАКТ в WEBMATRIX ....

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

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

0 голосов
/ 25 февраля 2012

Вам придется использовать Union, если вы хотите сделать это в чистом виде SQL.

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

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

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

...