首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择其他表中不存在的行

选择其他表中不存在的行
EN

Stack Overflow用户
提问于 2017-05-12 01:04:12
回答 2查看 68关注 0票数 0

让我们假设我有4张桌子,如上面所示。BOM是指材料清单。如您所见,生产订单1缺少了BOM (ITEM3)中的1项,而生产订单2缺少了其他项(ITEM1)。给定一个BOM代码,我如何获得每一个缺少一个项目的生产订单,这是哪一个项目?其结果可能是:

代码语言:javascript
复制
ID | Item
---|------
1  | ITEM3
2  | ITEM1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 05:17:51

这个怎么样:

代码语言:javascript
复制
SELECT id, item
  FROM production_order po
      JOIN bom_items bi ON po.code = bi.father
 WHERE NOT EXISTS
     (SELECT 1 FROM production_oder_items poi
       WHERE poi.id = po.id
         AND poi.item = bi.item)
  AND po.code = 'CAR01';
票数 1
EN

Stack Overflow用户

发布于 2017-05-12 01:07:33

其思想是确定所有的生产订单项目组合。然后使用left join来确定不存在的:

代码语言:javascript
复制
select po.Production_Order, bi.item
from Production_Order po cross join
     BOM_Items bi left join
     Product_Order_Items poi
     on poi.Production_order = po.id and
        poi.Item = bi.Item
where poi.Item is null;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43927778

复制
相关文章

相似问题

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