繁体   English   中英

如何从两个查询中提取差异?

[英]How can I extract the difference from two queries?

使用 SQL 服务器。

我有一个输出结果的查询,另一个执行相同的查询。 我想 output 什么不在其他:

select distinct 
v_GS_PC_BIOS.SerialNumber0
from v_GS_PC_BIOS
JOIN v_R_System ON v_R_System.ResourceID  = v_GS_PC_BIOS.ResourceID
WHERE v_GS_PC_BIOS.ResourceID NOT IN 
(
    SELECT distinct v_R_System.ResourceID from v_r_system
)

或者

Select distinct
v_R_System.ResourceID
from v_R_System
WHERE v_R_System.ResourceID NOT IN 
(
    select distinct 
    v_GS_PC_BIOS.SerialNumber0
    from v_GS_PC_BIOS
    JOIN v_R_System ON v_R_System.ResourceID  = v_GS_PC_BIOS.ResourceID
)

我得到 0 个结果

比较表格内容的一种方法

假设你有 2 张桌子

Cars: modelid, manufacturerid, ... some more car related columns

Airplanes: modelid, manufacturerid, ... some more airplane related columns

任务:确定哪些汽车制造商生产飞机,反之亦然。


SELECT c.manufacturerName, 'only cars' as specialization
FROM cars c LEFT JOIN
     airplanes a ON c.manufacturerid = a.manufacturerid
WHERE a.manufacturerid IS NULL
UNION ALL
SELECT a.manufacturerName, 'only airplanes' as specialization
FROM cars c RIGHT JOIN
     airplanes a ON c.manufacturerid = a.manufacturerid
WHERE c.manufacturerid IS NULL

这里的结果应该是这样的

马自达,只有汽车
丰田,只有汽车
空客,只有飞机

像这样的公司不应该显示,因为他们的记录将在两个表中

本田、三菱、萨博、福特、菲亚特

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM