如何解决如何在子查询中使用INNER JOIN和UNION?
我正试图找到在辣和素食菜肴中都使用的配料。此练习要求我使用子查询,内部联接和联盟。
这是我目前拥有的:
SELECT Ingredients.Name
FROM
(
SELECT Tags.Name
FROM Tags
INNER JOIN DishesTags ON DishesTags.TagID = Tags.ID
INNER JOIN Dishes ON DishesTags.DishID = Dishes.ID
INNER JOIN DishesIngredients ON DishesIngredients.DishID = Dishes.ID
) Ingredients
WHERE Tags.Name IN ('Spicy','Vegetarian')
但是,我不太了解如何在联合子查询上使用并集?
解决方法
一个选项使用聚合和having
子句进行过滤:
select i.name
from ingredients i
inner join dishesingredients di on di.ingredientid = i.id
inner join dishestags dt on dt.dishid = di.dishid
inner join tags t on t.id = dt.tagid
where t.name in ('Spicy','Vegetarian') -- either one tag or the other
group by i.id,i.name
having count(distinct t.name) = 2 -- both tags where found
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。