dha*_*gan 5 php mysql sql codeigniter
我正在做一个关于使用PHP(使用Codeigniter)和MYSQL烹饪食谱的项目.
我有三张桌子:
Ingredients- id,name.Recipe- id,nameing_to_rep- recipe_id,ingredient_id(我用这个表来保存哪种食谱有哪些成分.)什么是"得到所有有蛋(id = 64)和盐(id = 65)的食谱"的查询
我试过了:
SELECT * FROM recipe JOIN ing_to_rep ON recipe.id = ing_to_rep.rep_id
WHERE ing_to_rep.ing_id = 64 AND ing_to_rep.ing_id = 65
Run Code Online (Sandbox Code Playgroud)
当然,它什么都不返回,但它可以帮助你获得我想要做的事情.
可能有一种更有效的方法和更灵活的方法,但是两个子查询连接就可以了:
SELECT
recipe.*
FROM recipe
JOIN (SELECT recipe_id FROM ing_to_rep WHERE ingredient_id = 64) AS ing1 ON recipe.id = ing1.recipe_id
JOIN (SELECT recipe_id FROM ing_to_rep WHERE ingredient_id = 65) AS ing2 ON recipe.id = ing2.recipe_id
Run Code Online (Sandbox Code Playgroud)
也可以用EXISTS
SELECT
recipe.*
FROM
recipe
WHERE
EXISTS (SELECT recipe_id FROM ing_to_rep ing1 WHERE ingredient_id = 64 AND recipe.id = ing1.recipe_id)
AND EXISTS (SELECT recipe_id FROM ing_to_rep ing2 WHERE ingredient_id = 65 AND recipe.id = ing2.recipe_id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |