当前位置:编程学习 > C#/ASP.NET >>

sql表连接

有三个表
表1:(员工表)
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[T_Employees]([id] [int] IDENTITY(1,1) NOT NULL,[Employee_Id] [varchar](10) NOT NULL,[Employee_Name] [varchar](20) NOT NULL,[Work_Type] [varchar](2) NULL,[DepartMent_Id] [int] NULL,[Extension_Phone] [varchar](50) NULL,[Address] [varchar](50) NULL,[Birthday] [datetime] NULL,[Phone] [nvarchar](20) NULL,[status] [varchar](2) NULL,
 CONSTRAINT [PK_T_Employees] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

表2:(操作员表)
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[T_Staff]([Staff_Id] [int] NOT NULL,[Department_Id] [int] NOT NULL,[Log_Pwd] [varchar](20) NULL,[Staff_Name] [varchar](20) NULL,[Sex] [int] NULL,[Phone] [varchar](20) NULL,[Address] [varchar](50) NULL,
[Status] [int] NULL,[Creator] [int] NULL,[Create_Time] [datetime] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

表3(部门表)
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[T_Department]([Department_Id] [int] NOT NULL,[Department_Name] [varchar](20) NOT NULL,
[If_All] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

想用登录的操作员Staff_Id登录时绑定操作员的部门和部门下的员工 怎么做? --------------------编程问答-------------------- 1.
select a.* from [dbo].[T_Staff] AS b,[dbo].[T_Department] AS b WHERE a.[Department_Id] 

= b.,[Department_Id] AND b.[Staff_Id] = 登录输入的ID

2.
select * from [dbo].[T_Employees] where [DepartMent_Id] =
(
select TOP 1 a.[Department_Id] from [dbo].[T_Staff] AS b,[dbo].[T_Department] AS b WHERE a.[Department_Id] 

= b.,[Department_Id] AND b.[Staff_Id] = 登录输入的ID
) AS temp --------------------编程问答-------------------- 1.
select a.* from [dbo].[T_Staff] AS b,[dbo].[T_Department] AS b WHERE a.[Department_Id]  

= b.,[Department_Id] AND b.[Staff_Id] = 登录输入的ID

2.
select * from [dbo].[T_Employees] where [DepartMent_Id] =
(
select TOP 1 a.[Department_Id] from [dbo].[T_Staff] AS b,[dbo].[T_Department] AS a WHERE a.[Department_Id]  

= b.[Department_Id] AND b.[Staff_Id] = 登录输入的ID
) AS temp --------------------编程问答-------------------- 楼主说明白些了。上面的表主外键关系都相当明确。一个连表查询都可以搞定了。。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,