首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -为每个父类查找未使用的查找值。

SQL -为每个父类查找未使用的查找值。
EN

Stack Overflow用户
提问于 2018-06-20 15:05:38
回答 1查看 40关注 0票数 0

假设我有一张叫做配料的桌子,里面有五种不同的比萨饼配料。

代码语言:javascript
复制
1. Ham
2. Pineapple
3. Banana
4. Chocolate
5. Tomato

然后我有一个比萨表和一个PizzaTopping表(链接到配料)。这两张表描述了已经制作和销售的披萨。

现在,对于每个比萨饼,我想展示所有的原料,而不是我出售的每一个比萨饼。例如,如果Pizza 1是Ham、Pineaple和Banana (即原料4和5没有使用),而Pizza 2是Pinepple、Chocolate和Tomato (例如没有使用配料1和3),我会看到以下情况:

代码语言:javascript
复制
Pizza    Ingredient
1           4
1           5
2           1
2           3

我希望这是一个视图,所以我不能使用子查询.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 15:09:52

把所有的比萨饼和所有的原料一起加入,然后过滤那些和NOT EXISTS一起使用的。

代码语言:javascript
复制
SELECT
    P.Pizza,
    I.Ingredient
FROM
    Pizza P
    CROSS JOIN Ingredient I
WHERE
    NOT EXISTS (SELECT 'ingredient not used' FROM PizzaTopping T WHERE T.Pizza = P.Pizza AND I.Ingredient = T.Ingredient)

编辑:用于Server索引视图:

代码语言:javascript
复制
SELECT
    P.Pizza,
    I.Ingredient
FROM
    Pizza P
    CROSS JOIN Ingredient I
    LEFT JOIN PizzaTopping T ON 
        T.Pizza = P.Pizza AND 
        I.Ingredient = T.Ingredient
WHERE
    T.Pizza IS NULL
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50951417

复制
相关文章

相似问题

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