我正在尝试编写一个 SQL 查询以在网页上的过滤器中使用。该网页是一本在线食谱食谱。
如果您登录系统并转到您的食谱,则只有您的用户才能看到这些食谱。
例如,假设我创建了 3 个食谱,其中一个包含西兰花。我希望能够在成分过滤器中选择西兰花,并为其查看我用西兰花保存的食谱并显示它。所以我相信查询需要采用 2 个值,即成分 id 和用户 id,它需要检查哪个食谱中有该成分,然后如果用户创建了该食谱,则需要返回食谱 ID,所以我们可以显示那些食谱。
目前这是我的疑问。然而,它会带回用户所做的一切。
SELECT quantities.recipe_id
FROM quantities, recipes
WHERE quantities.ingredient_id = '24' AND recipes.user_id = '6'
我需要在某个地方加入吗?
最佳答案
是的,您需要加入。更好的查询是:
SELECT quantities.recipe_id
FROM quantities
INNER JOIN recipes ON quantities.recipe_id = recipes.recipe_id
WHERE quantities.ingredient_id = 24 AND recipes.user_id = 6
如果没有连接,您将生成每个配方行与每个成分行的乘积,这不是预期的。
关于mysql - 编写 SQL 查询以使用过滤器返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370910/