Var*_*jan 21 sql database ms-access
我已经研究过并且没有找到在MS Access中运行INTERSECT和MINUS操作的方法.有任何方式存在
Lep*_*R64 31
INTERSECT是一个内部联接.MINUS是一个外连接,您只能选择另一个表中不存在的记录.
select distinct
a.*
from
a
inner join b on a.id = b.id
Run Code Online (Sandbox Code Playgroud)
减去
select distinct
a.*
from
a
left outer join b on a.id = b.id
where
b.id is null
Run Code Online (Sandbox Code Playgroud)
如果您编辑原始问题并发布一些示例数据,则可以给出一个示例.
编辑:忘记添加到查询的不同.
Dav*_*kle 14
INTERSECT不是内部联合.他们是不同的.如果INTERSECT不能,INNER JOIN会给你重复的行.你可以得到相同的结果:
SELECT DISTINCT a.*
FROM a
INNER JOIN b
on a.PK = b.PK
Run Code Online (Sandbox Code Playgroud)
请注意,PK必须是主键列.如果表上没有PK(坏!),你必须这样写:
SELECT DISTINCT a.*
FROM a
INNER JOIN b
ON a.Col1 = b.Col1
AND a.Col2 = b.Col2
AND a.Col3 = b.Col3 ...
Run Code Online (Sandbox Code Playgroud)
使用MINUS,您可以执行相同的操作,但使用LEFT JOIN,并且WHERE条件在表b的不可为空的列(最好是主键)之一上检查null.
SELECT DISTINCT a.*
FROM a
LEFT JOIN b
on a.PK = b.PK
WHERE b.PK IS NULL
Run Code Online (Sandbox Code Playgroud)
应该这样做.
| 归档时间: |
|
| 查看次数: |
82147 次 |
| 最近记录: |