前天的项目,刚接手,对于模块还不是很熟悉,其中有一个模块,涉及到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
相关文章
- 09-28sql将查询的多行结果使用逗号连接拼接成一行
- 09-28如何从Airflow中的Big Query获取SQL查询的结果?
- 09-28在sql server数据库的一个表中如何查询共有多少字段
- 09-28T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
- 09-28如何查询SQL Server 中 Index 的创建时间
- 09-28SQL Server 中查询以某字母开头的数据
- 09-28sql将查询的结果集一次性插入到表变量中
- 09-28SQL SERVER中查询无主键的SQL
- 09-28【转】T-SQL查询进阶—理解SQL Server中的锁
- 09-28T-SQL查询进阶--理解SQL Server中索引的概念,原理