Mysql SQL-使用多个条件连接

Mysql SQL-使用多个条件连接,mysql,sql,Mysql,Sql,我有三张桌子: 配方:id-名称 标准:id-名称 配方\u有\u标准:id-id\u配方-id\u标准 例如,在配方中有\u标准: 1-1-1 2-1-2 3-2-1 我想得到标准1和2的配方。(此处为id为1的配方) 我该怎么做 感谢您的帮助完成了两个连接,每个标准一个:- select a.*,b.*,c.* from recipe_has_criterias a inner join recipe b on b.id=a.id_recipe inner join criteria c o

我有三张桌子:

配方:id-名称

标准:id-名称

配方\u有\u标准:id-id\u配方-id\u标准

例如,在配方中有\u标准

1-1-1

2-1-2

3-2-1

我想得到标准1和2的配方。(此处为id为1的配方)

我该怎么做


感谢您的帮助

完成了两个连接,每个标准一个:-

select a.*,b.*,c.*
from recipe_has_criterias a
inner join recipe b
on b.id=a.id_recipe
inner join criteria c
on c.id=a. id_criteria and a. id_criteria in(2,3)
SELECT r.name
FROM recipe r
INNER JOIN recipe_has_criteria rc1
ON r.id = rc1.id_recipe
INNER JOIN recipe_has_criteria rc2
ON r.id = rc2.id_recipe
WHERE rc1.id_criteria = 2
AND rc2.id_criteria = 3

但是id为1的
配方与给定示例中的
1和2
关联。是否需要标准2和3?(或者只是其中一个,或者两者都有。)回答@AbhikChakraborty查询,并让我们知道您可能需要哪些字段。您可以从单个表中获取数据,或者根据所需数据从2或3个表中获取数据。我的错,我编辑了问题。这两个都是必需的,我看不到join recipe的任何好处。2次join recipe_有_criteria table。每个必需的条件一次,并使用任何聚合函数保存。如果(2,3)中的join table single time和criteria…会产生不同的结果。如果使用聚合函数检查是否返回了2行,则不会
SELECT r.name
FROM recipe r
INNER JOIN recipe_has_criteria rc1
ON r.id = rc1.id_recipe
INNER JOIN recipe_has_criteria rc2
ON r.id = rc2.id_recipe
WHERE rc1.id_criteria = 2
AND rc2.id_criteria = 3