我在一个数据库中有大约20个表,列名相同,即
TeacherName,主题,类别,等等...
现在我想一次查询所有表格,显示所有具有教师姓名的行:“John Travolta”。
我该怎么做?我在一些帖子中看到UNION是一种方法,但由于有20个甚至更多的表,我想要有更好的方法来做...
顺便说一句,我在WEBMATRIX中使用SQL SERVER COMPACT ....
答案 0 :(得分:2)
除了联合表的所有查询结果外,不能想到一种不同的方法。 你真正需要问自己的问题是,为什么你有这么多表存在相同的数据?我认为这是一个不好的做法,你应该有一个表有一个字段,将它们分开,甚至扩展表到不同类型的行。 但是底线 - 代表相同信息的每个数据都应存储在一个表中。
答案 1 :(得分:0)
如果您想以纯SQL方式执行此操作,则必须使用Union
。
使用EF,继承和一些配置可以通过一个集合访问具有相同列的多个表。但我不是这种方法的专家。
此外,您可以组合所有表中的所有列。但是,SQL Server CE不支持视图。如果要将数据库迁移到SQL Server Express,则可以执行此操作。
最后,您可以使用stringbuilder在asp.net应用程序中生成SQL语句。