前天的项目,刚接手,对于模块还不是很熟悉,其中有一个模块,涉及到4个表,其中主要的表就有两个,只要把这个弄清楚了就一切回归于“太平”了。
模块要求:把两个表的内容查询出来,结果连接在一起。大师说完,感觉没有什么问题,自己就看了下数据库表的设计,看完后,发现两张表中的主键完全可以相同啊!
项目不仅设计到读出来,还要根据主键把对应的所有数据都读出,这一下让我感觉很头疼,。想想以前老师曾说过,在万不得已的时候不要用UNION或者UNION ALL,这会大大降低性能的。
于是就和大师商量能不能换一种简单的,分开做,人家大师说了,分开也可以,就是相同的业务分成两类来做,一不好,二不美观。
就这样呗,回家想方法呗,查询简单,就是如何在主键相同的情况下区分数据来自那张表的问题。
本想加一个互斥的列来,试了一下没成功,。最后还是加了一个标志用来区分不同表。
代码如下:
SELECT a.biAutoID, a.vCompanyName ,'Table_1' AS Differ FROM CapitalProjectKeyTechnology as a UNION ALL SELECT b.biAutoID, b.vCompanyName ,'Table_2' AS Expr1 FROM CapitalProjectTest as b
相关文章
- Microsoft SQL Server Desktop Engine安装过程中遇到的问题(2)
- Microsoft SQL Server Desktop Engine安装过程中遇到的问题(1)
- 查询索引中的碎片和重建SQL server索引
- 工作中遇到的spark SQL小问题:包含某个或某些字符的条件
- 浅谈sql server把一个表中查询出来的数据插入到另外一个表中
- SQL Server 中的SET XACT_ABORT各种用法及显示结果
- (数据科学学习手册28)SQL server 2012中的查询语句汇总
- SQL查询结果列拼接成逗号分隔的字符串:group_concat
- SQL Server中查询某个数据库中表的个数
- Java中使用同样的sql语句在数据库中可以查询出结果,但是在程序中确无法查询出结果——解决方法