作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个“产品”表:
id | name
---------
1 | nike
2 | adidas
和“过滤器”表:
id | name
---------
1 | red
2 | blue
和“PRODUCTS_FILTERS”表:
product_id | filter_id
-----------------------
1 | 1
1 | 2
2 | 2
我需要一个 SQL 查询,该查询将仅返回具有 filter1
和 filter2
的产品(在我的示例中为“nike”产品)。
当我运行以下 SQL 查询时:
select products.* from products
join product_filters on products.id = product_filters.productId
join filters on product_filters.filterId = filters.id
where filters.id = 1 AND filters.id = 2
尽管“nike”产品在 PRODUCTS_FILTERS
中具有 filter1
(红色)和 filter2
(蓝色),但我不明白任何结果,因为 join
为 nike
产品生成了 2 个不同的行。
如何解决我的查询?
最佳答案
SELECT products.*
FROM products
INNER JOIN products_filters
ON product_filters.productId = products.id
INNER JOIN filters
ON filters.id = product_filters.filterId
AND filters.id in (1,2)
关于mysql - SQL - 如何使用 AND 运算符在使用 JOIN 后起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44662148/
我是一名优秀的程序员,十分优秀!