我有三個表:從兩個選擇行連接表不是在第三個表
表1: (僱員INT,EmployeeType INT)
表2: (AllowanceID INT,EmployeeType INT)
表3: (僱員INT,AllowanceID INT)
我需要一個查詢來從兩個表(Table1,Table2)中選擇不在第三個表(Table3)中的連接行。
我想:
Select t1.EmployeeID, t2.AllowanceID
From Table2 t2 Inner Join
Table1 t1
on t1.EmployeeType = t2.EmployeeType
where Not Exists (select 1
From Table3 t3
where t3.EmployeeID = t1.EmployeeID and
t3.AllowanceID = t2.AllowanceID
)
,但沒有成功。
CREATE TABLE [dbo].[Table1](
[EmployeeID] [int] NULL,
[EmployeeType] [tinyint] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[Table2](
[AllowanceID] [int] NOT NULL,
[EmployeeType] [int] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[Table3](
[AllowanceID] [int] NULL,
[EmployeeID] [int] NULL
) ON [PRIMARY]
Insert into Table1 (EmployeeID,EmployeeType)
Values
(352395, 10),
(352396, 16),
(352397, 15),
(352398, 10),
(3523991, 16),
(NULL, 16)
Insert into Table2 (AllowanceID, EmployeeType)
Values
(100, 50),
(30, 9),
(32, 10),
(37, 16),
(512, 28),
(6000, 10)
Insert into Table3 (AllowanceID,EmployeeID)
Values
(NULL, 352400),
(32, NULL),
(37, NULL),
(37, 352395),
(6000, 352395),
(30, 352396),
(32, 352396),
(37, 352396),
(512, 352396),
(6000, 352396),
(30, 352397),
(32, 352397),
(37, 352397),
(512, 352397),
(6000, 352397),
(30, 352398),
(32, 352398),
(37, 352398),
(512, 352398),
(6000, 352398),
(30, 352399),
(32, 352399),
(37, 352399),
(512, 352399),
(6000, 352399)
什麼是 「沒有成功的意思」?你能提供樣本數據和期望的結果嗎? –
我是第二個戈登·林諾夫的請求。作爲一個說明,我編輯了你的帖子,在你的代碼中添加了一些換行符(沒有改變代碼本身的任何東西)。事實上,它延伸得很遠,用戶不得不滾動瀏覽所有內容。只是一些反饋,爲未來的職位格式。 – SandPiper
您發佈的代碼對我來說似乎很好,但沒有示例數據(如DDL + DML),明確的問題描述和期望的結果很難回答您的問題。 –