从SQL服务器中的三个表中查询数据

Query data from three tables in SQL Server

我有 3 个名为 tbl_mondaytbl_tuesdaytbl_wednesday 的表,它们包含如下数据:

tbl_monday

id    empid   Plan
---------------------
1     6       Mon_27
2     6       Mon_27
3     6       Mon_27

tbl_tuesday

id    empid   Plan
--------------------
1     6       Tue_28
2     6       Tue_28
3     6       Tue_28     

tbl_wenesday

id  empid     Plan
------------------
1     6       Wed_29
2     6       Wed_29
3     6       Wed_29

有没有简单的方法可以得到这样的结果?

empid    Plan
----------------------
6       Mon_27
6       Tue_28
6       Wed_29

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

SELECT empid, [plan] FROM tbl_monday
UNION
SELECT empid, [plan] FROM tbl_tuesday
UNION
SELECT empid, [plan] FROM tbl_wednesday

SQLFiddle

简单的是使用 union all:

select *
from
(
    select top 1 empid, plan
    from tbl_monday
    order by id
) m

union all

select *
from
(
    select top 1 empid, plan
    from tbl_tuesday
    order by id
) t

union all

select *
from
(
    select top 1 empid, plan
    from tbl_Wednesday 
    order by id
) w

虽然看起来您确实应该重新考虑您的数据库设计。