2012-02-25 51 views
0

我在一个数据库中约20桌,有相同的列名,即查询具有相同的列名多个表

TeacherName,主题类,等等

现在我想查询所有一次到表显示所有的老师姓名行说:“约翰特拉沃尔塔”

我该怎么做?我在一些帖子中看到UNION是一种方法,但由于有20个或更多的表格,我想要是否有更好的方法来做到这一点...

btw我在使用SQL SERVER COMPACT WEBMATRIX ....

回答

2

除了表的所有查询结果的联合之外,不能想到一个不同的方式来完成它。 你真的需要问自己的问题是,为什么你有这么多的表中存储相同的数据的表?我认为这是一个不好的做法,你应该有一个表中有一个将它们分开的字段,或者甚至是扩展表到不同类型的行。但底线 - 表示相同信息的每个数据应存储在一个表中。

+0

:谢谢你的回复。 那么我实际上有一个大学的20个不同部分的数据,因此定义保持不变... – user1173468 2012-02-25 10:53:35

+1

那么,为什么不把它合并成一个大表,并保留SectionID的外键来区分不同部分? – Sagi 2012-02-25 11:14:40

+0

+1为设计建议。每个部门都有一张桌子并不是一件好事。为部门/部门创建一个表并使用它在一个表中区分它们是比UNION更好的方法。 – 2012-02-25 12:22:18

0

如果您想以纯SQL方式执行操作,则必须使用Union

有一些技巧使用EF,继承和一些配置,可以让你通过一个集合访问具有相同列的几个表。但我不是这种方法的专家。

此外,您可以将所有表格中的所有列组合起来。但是,SQL Server CE不支持视图。你可以这样做,如果你将你的数据库至少迁移到SQL Server Express。

最后,您可以使用stringbuilder在您的asp.net应用程序中生成您的SQL语句。

+0

谢谢:) Gawd!看起来很多! :P 无论如何非常感谢你的答复,不好,然后尝试与联盟本身合作.... – user1173468 2012-02-25 10:56:18

相关问题