问题描述
CREATE TABLE final(
FileID int,rate varchar(50),groupID varchar(50),destination varchar(50),Rate int,bDate date,eDate date,billID varchar(50) NULL
);
CREATE TABLE temp(
FileID int,billID varchar(50) NULL
);
INSERT final VALUES (1,'123','1033','987',2,'2020-01-01','2020-12-31',NULL);
INSERT final VALUES (1,'234','1052','985','999','988',1,'2021-01-01','2021-12-31','0/1/1');
INSERT final VALUES (2,'222','989','2022-01-01','2022-12-31',NULL);
INSERT temp VALUES (1,'2020-06-06','0/1/1');
INSERT temp VALUES (1,'0/1/1');
INSERT temp VALUES (2,'0/1/1');
- 根据 FileID 查找在最终表中但不在临时表中的行 假设我们只查看 FileID = 1
文件ID | 率 | 组ID | 目的地 | 率 | 日期 | 电子日期 | 账单ID |
---|---|---|---|---|---|---|---|
1 | 123 | 1033 | 987 | 2 | 2020-01-01 | 2020-12-31 | NULL |
1 | 234 | 1052 | 985 | 2 | 2020-01-01 | 2020-12-31 | NULL |
- 根据它们的 FileID 查找临时表中但不在最终表中的所有行。假设我们只查看 FileID = 1
文件ID | 率 | 组ID | 目的地 | 率 | 日期 | 电子日期 | 账单ID |
---|---|---|---|---|---|---|---|
1 | 123 | 1033 | 987 | 2 | 2020-06-06 | 2020-12-31 | 0/1/1 |
解决方法
左连接,然后为另一个表选择空行。
这是一个例子。我输入了 [etc] 而不是输入所有字段名称。
SELECT final.fileId,final.rate [etc]
FROM
(
SELECT final.fileId,final.rate [etc] temp.FileId
FROM final LEFT JOIN temp
ON final.FileId = temp.FileId,final.rate = temp.rate [etc]
)
WHERE
temp.FileId IS NULL