首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL视图:将初始表与分析表进行比较,以返回初始表中不存在的值

SQL视图:将初始表与分析表进行比较,以返回初始表中不存在的值
EN

Stack Overflow用户
提问于 2014-07-03 10:54:04
回答 2查看 71关注 0票数 1

我的数据库里有两张桌子。第一个表包含多条路线和巡逻。每条路线都可能有多次巡逻。每次巡逻时,都会提交一些标签。第二个表只包含路由和标记,基本上是为该路由设置的完整标记。

对于每次巡逻,我都需要返回第二个表中不存在的值(也就是列出该路线和巡逻中没有记录的标记)。

代码语言:javascript
复制
**Table:Data Import:**
RouteID
PatrolID
TagID

**Table:Routes**
RouteID
TagID

这有道理吗?我试过不进入,离开加入,不存在,但我似乎无法使我的逻辑正确。我最近的尝试(全部)如下:

哦,我正在创造一个风景。我希望将下面的颜色包含在我的输出中,但是您不需要在响应中使用它们。

代码语言:javascript
复制
 CREATE VIEW TagsNotPresent AS
    SELECT 
    [Data Import].[Company name], 
    [Data Import].[Site name], 
    [Data Import].[Patrol ID], 
    [Data Import].[Route id], 
    [Data Import].[Occurrence date], 
    [Data Import].[Tag name] 
    FROM [Data Import]
    LEFT OUTER JOIN Routes 
    ON Routes.[Route id] = [Data Import].[Route id] 
    AND Routes.[Tag name] = [Data Import].[Tag name] 
    WHERE Routes.[Tag name] IS NULL

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 12:00:20

EXCEPT可以帮助您:

代码语言:javascript
复制
SELECT r.RouteId,di.PatrolID,r.TagId
    FROM Routes r
    INNER JOIN (SELECT DISTINCT RouteId, PatrolID from DataImport) as di on di.RouteId = r.RouteId
EXCEPT
SELECT RouteId,PatrolID,TagId
FROM DataImport
票数 1
EN

Stack Overflow用户

发布于 2014-07-03 11:34:18

用减号SQL顺序试一试。我选择了所有可能的路由和标签组合,并减去所有现有的。我希望这是你想要的。

代码语言:javascript
复制
  select distinct patrol_id, routes.*
   from data_import
   join routes
   on data_import.route_id = routes.route_id
 minus
   select patrol_id, routes.* 
   from data_import
   join routes
   on data_import.route_id = routes.route_id and data_import.tag_id = routes.tag_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24551770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档