|
|
1
2
为什么他们在不同的桌子上?这些柱子有那么不同吗?您想返回哪些列(在生产环境中永远不要使用select*,尤其是在连接时),它们在查询中的不同类型之间是否不同? 如果你能让列保持一致,我建议你使用UNION ALL。即使列不同,在联合语句的每个部分提供所需的所有内容(为表集没有的列提供null值),你仍然可以得到你想要的。简化代码如下:
|
|
|
2
2
您可以创建一个视图,该视图是所有不同表的联合。棘手的一点是确保所有被UNIONed的查询都有相同的字段,所以你需要在每个查询中添加一些存根。以下是一个仅包含两个表的简化示例:
|
|
3
0
也许您可以为5种类型(vwBook、vwArticle等)中的每一种创建视图
当然,可以根据需要进行修改。以下是一个宽泛的中风示例:
|
|
|
4
0
我真的不喜欢这里的桌子设计。然而,我认为从头开始重新设计整个数据库有点过于极端。 考虑到表的设计,我认为你必须使用UNION并指定每个表中的列。我知道这是一个怪物,但当你设计的表中有很多“几乎”相似的列时,就会发生这种情况。 HLGEM是对的。在永久存储的查询中使用“select*”确实很危险。 |
|
|
5
0
|