mysql - 编写 SQL 查询以使用过滤器返回结果

标签 mysql sql

我正在尝试编写一个 SQL 查询以在网页上的过滤器中使用。该网页是一本在线食谱食谱。

如果您登录系统并转到您的食谱,则只有您的用户才能看到这些食谱。

例如,假设我创建了 3 个食谱,其中一个包含西兰花。我希望能够在成分过滤器中选择西兰花,并为其查看我用西兰花保存的食谱并显示它。所以我相信查询需要采用 2 个值,即成分 id 和用户 id,它需要检查哪个食谱中有该成分,然后如果用户创建了该食谱,则需要返回食谱 ID,所以我们可以显示那些食谱。

目前这是我的疑问。然而,它会带回用户所做的一切。

SELECT quantities.recipe_id
FROM quantities, recipes
WHERE quantities.ingredient_id = '24' AND recipes.user_id = '6'

我需要在某个地方加入吗?

食谱的表结构: Recipe Table Structure

数量的表结构 Quantities Table Structure

最佳答案

是的,您需要加入。更好的查询是:

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/

相关文章:

php - 如何从远程数据库查询信息,PHP/MySQL

java - 在 mySQL 上运行多个并发语句

php - 更新表时,键 '1' 出现重复条目​​ 'PRIMARY'

sql - 检查可为空的日期值以获得正确的顺序

mysql - 在mysql中选择重复的ID

mysql - 按小时分组显示 MYSQL 日期范围内每一天的分割

php - 使用 SQL 合并两个数组值以进行插入

java - 是否可以只用一个查询来检索分成三个表的对象?

mysql - 类型转换、转换还是定制?

sql - 分层查询(如何检索中间节点)