表1:------------------------------ 【人事表】
表名:【Man】
字段: Man_Id,Man_Name,Zw_Id
1 张飞 2
2 曹操 1
表2:------------------------------ 【职务表】
表名:【Zw】
字段: Zw_Id,Zw_Name
1 校长
2 班主任
表3:------------------------------ 【工资表】
表名:【Zw】
字段: Man_Id,Money
1 2500
2 4000
需要的------------------------------- 【查询结果】:
Man_Id,Man_Name,Zw_Id,Zw_Name,Money
1 张飞 2 班主任 2500
2 曹操 1 校长 4000
------------------------------------------ 【要求】
1、一条Sql语句
2、而且是Select语句,不用With
3、愿出100分谢谢各位!
------解决方案--------------------
SELECT A.MAN_ID,A.MAN_NAME,A.ZW_ID,B.ZW_NAME,C.MONEY FROM MAN A
LEFT JOIN ZW B ON A.ZW_ID=B.ZW_ID
LEFT JOIN GZ C ON A.MAN_ID=C.MAN_ID
工资表名与职务表名相同了,这里我用GZ代替了。
------解决方案--------------------
select a.man_id,man_name,b.zw_id,zw_name,c.money
from man as a inner join zw as b on a.zw_id=b.zw_id inner join gz as c on a.man_id=c.man_id
------解决方案--------------------
----------------------------
-- Author :TravyLee(物是人非事事休,欲语泪先流!)
-- Date :2012-12-11 10:35:32
-- Version:
-- Microsoft SQL Server 2012 - 11.0.2100.60 (Intel X86)
-- Feb 10 2012 19:13:17
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[Man]
if object_id('[Man]') is not null drop table [Man]
go
create table [Man]([Man_Id] int,[Man_Name] varchar(4),[Zw_Id] int)
insert [Man]
select 1,'张飞',2 union all
select 2,'曹操',1
--> 测试数据:[Zw]
if object_id('[Zw]') is not null drop table [Zw]
go
create table [Zw]([Zw_Id] int,[Zw_Name] varchar(6))