我有这个SQL查询:

SELECT DISTINCT c.id, c.name
FROM cars c LEFT JOIN
     _rel_cars_categories rcc ON c.id=rcc.car_id
WHERE (rcc.category_id=33 AND rcc.category_id=51)
  AND c.status >=10


表格:



不幸的是,它返回0个结果。当我替换AND或OR时,它工作正常,但是我想同时获得这两个类别中的所有ar。也可以是3、4、5 ...个类别。如何获得正确的结果?

最佳答案

要选择类别为33和51的汽车,请尝试以下操作:

SELECT c.id, c.name
FROM cars c JOIN
     _rel_cars_categories rcc ON c.id=rcc.car_id
WHERE rcc.category_id IN (33,51) AND c.status >=10
GROUP BY c.name
HAVING count( distinct rcc.category_id ) = 2

关于mysql - MySQL从多个类别中选择项目不返回任何结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23684405/

10-12 23:25