查询SQL Server中三个表的数据

Ren*_*eep 4 sql sql-server select sql-server-2005

我有叫3个表tbl_monday,tbl_tuesdaytbl_wednesday认为由数据如下:

tbl_monday

id    empid   Plan
---------------------
1     6       Mon_27
2     6       Mon_27
3     6       Mon_27
Run Code Online (Sandbox Code Playgroud)

tbl_tuesday

id    empid   Plan
--------------------
1     6       Tue_28
2     6       Tue_28
3     6       Tue_28     
Run Code Online (Sandbox Code Playgroud)

tbl_wenesday

id  empid     Plan
------------------
1     6       Wed_29
2     6       Wed_29
3     6       Wed_29
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来获得这样的结果?

empid    Plan
----------------------
6       Mon_27
6       Tue_28
6       Wed_29
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 5

您可以union在三个表之间进行查询,这将提供所有查询的唯一结果:

SELECT empid, [plan] FROM tbl_monday
UNION
SELECT empid, [plan] FROM tbl_tuesday
UNION
SELECT empid, [plan] FROM tbl_wednesday
Run Code Online (Sandbox Code Playgroud)

SQLFiddle

  • @ZoharPeled你错了.正如我上面提到的,`union`运算符(与`union all`不同)提供了独特的结果 - 不仅仅是查询之间,而是完全相同.请参阅我在答案中添加的SQLFiddle以获取证据. (4认同)