gpt4 book ai didi

sql - 通过中间表进行SQL查询

转载 作者:行者123 更新时间:2023-12-03 13:26:00 28 4
gpt4 key购买 nike

给出下表:

Recipes
| id | name
| 1 | 'chocolate cream pie'
| 2 | 'banana cream pie'
| 3 | 'chocolate banana surprise'

Ingredients
| id | name
| 1 | 'banana'
| 2 | 'cream'
| 3 | 'chocolate'

RecipeIngredients
| recipe_id | ingredient_id
| 1 | 2
| 1 | 3
| 2 | 1
| 2 | 2
| 3 | 1
| 3 | 3

我如何构造一个SQL查询来查找Ingredients.name ='chocolate'和Ingredients.name ='cream'的配方?

最佳答案

这称为关系划分。 here讨论了多种技术。

尚未提供的另一种选择是双重NOT EXISTS

SELECT r.id, r.name
FROM Recipes r
WHERE NOT EXISTS (SELECT * FROM Ingredients i
WHERE name IN ('chocolate', 'cream')
AND NOT EXISTS
(SELECT * FROM RecipeIngredients ri
WHERE ri.recipe_id = r.id
AND ri.ingredient_id = i.id))

关于sql - 通过中间表进行SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com