首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql检查行是否是另一个表的子集

sql检查行是否是另一个表的子集
EN

Stack Overflow用户
提问于 2014-06-04 06:28:08
回答 1查看 2.5K关注 0票数 1

你能帮我解决问题吗?我有一个tblProduct,这是一个材料清单,用于生产带有标记的物品。tblStock是库存的可用标记。我需要一个查询,以检查哪些产品可以根据现有的标记。产品只能在所有的贴花都可用的情况下才能生产。非常感谢你的进步

tblProduct

代码语言:javascript
复制
    Id      decal_1         decal_2     decal_3        
    1       111             121         144
    2       104             106         144
    3       121             144         163
    4       122             144         163
    5       (null)          163         191
    6       104             121         163

tblStock

代码语言:javascript
复制
Available_decal
111
121
144
163
191

期望输出

代码语言:javascript
复制
Id
1
3
5

请注意,数字5中有一个null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 06:32:07

应该由IN检查来完成

代码语言:javascript
复制
SELECT 
    * 
FROM 
    tblProduct 
WHERE 
    (decal_1 IS NULL OR decal_1 IN (SELECT Available_decal FROM tblStock))
    AND (decal_2 IS NULL OR decal_2 IN (SELECT Available_decal FROM tblStock))
    AND (decal_3 IS NULL OR decal_3 IN (SELECT Available_decal FROM tblStock))

另一种使用EXISTS的方法

代码语言:javascript
复制
SELECT 
    * 
FROM 
    tblProduct 
WHERE 
    (decal_1 IS NULL OR EXISTS (SELECT 1 FROM tblStock WHERE Available_decal = decal_1))
    AND (decal_2 IS NULL OR EXISTS (SELECT 1 FROM tblStock WHERE Available_decal = decal_2))
    AND (decal_3 IS NULL OR EXISTS (SELECT 1 FROM tblStock WHERE Available_decal = decal_3))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24030486

复制
相关文章

相似问题

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