首页 > 解决方案 > 如何使用两个相同的变量和不同的值找到一个 id

问题描述

我必须通过两个值来获取 ID。所以假设当我调用: id - 2 我得到两个值 7 和 6。我想调用 7 和 6 来获得值 2

我有表recipeingredient我应该使用成分 ID 67找到配方 ID 2

例子:

SELECT * FROM recipeingredient WHERE recipe_id=2

回报:6 7

但我想逆转。

我认为它应该相当于:

SELECT * FROM recipeingredient WHERE ingredient_id=6 AND ingredient_id=7

应该返回:2但什么也不返回

总结一下:在我的 php 网页上,我必须选择 2 个元素并获得 1 个显示值。它的标签系统。我不能使用 OR,我需要获得值 A 和值 B 的值。

标签: mysqlsqlgroup-by

解决方案


您可以使用聚合和 HAVING 子句来实现过滤器,例如:

SELECT recipe_id
FROM recipeingredient
GROUP BY recipe_id
HAVING 
    SUM(ingredient_id=6) > 0
    AND SUM(ingredient_id=7) > 0

推荐阅读