Выборка по нескольким значениям в связанных таблицах

Есть 2 таблицы. Таблица ad — товары, ad_caregory — Свойства товаров. Таблица ad_caregory связана через category_id с таблицей ad (поле id). У одного товара может быть много свойств. Задача: выбрать все товары, которые отвечают заданным свойствам. Сделал выборку по 1 свойству, а при использовании перечисления — получаю нулевой результат. Что делаю не так?

    SELECT
    tov.id AS id_tov,
    tov.title AS title_tov,
    cat.category_id AS category_cat,
    cat.ad_id AS ad_cat
FROM
    `ad` AS tov,
    `ad_caregory` AS cat
WHERE
    cat.ad_id = tov.id AND
    cat.category_id = '1' AND
    cat.category_id = '5'
ORDER BY
    tov.`id`

Ответы (1 шт):

Автор решения: Konstantin Lagutin

Решил следующим образом:

SELECT
    tov.id AS id_tov,
    tov.title AS title_tov,
    cat.category_id AS category_cat,
    cat.ad_id AS ad_cat
FROM
    ad AS tov,
    ad_caregory AS cat
WHERE
    cat.ad_id = tov.id AND cat.category_id IN(1,3,9)
GROUP BY
    tov.id
HAVING  (COUNT(*) = 3)

где, IN(1,3,9) - идентификаторы свойств, а в HAVING (COUNT(*) = 3) указываем их количество.

→ Ссылка