Данный запрос почему-то возвращает "Empty set" на mysql 5.6 и выше. На mysql 5.5 запрос прекрасно работает и выдает список из одного столбца product_id. Помогите переделать, пожалуйста. Или что в этом запросе не так? Что изменилось в 5.6? Тип таблиц: MyISAM
SELECT `product_id`
FROM `characteristic_value_product`
WHERE `characteristic_value_id` IN ('22')
GROUP BY `product_id`
HAVING COUNT(1) IN (SELECT COUNT(1)
FROM (SELECT distinct characteristic_id
FROM characteristic_values
WHERE id IN ('22')
) char_val
);
И так, отвечу сам на свой вопрос. Все гораздо проще, чем я думал. Уже рабочий запрос имеет данный вид:
SELECT product_id
FROM characteristic_value_product
WHERE characteristic_value_id IN ('22')
GROUP BY product_id
HAVING COUNT(1) = 1 IN (SELECT COUNT(DISTINCT characteristic_id)
FROM characteristic_values
WHERE id IN ('22')
);
Дело исключительно в HAVING COUNT(1) = 1. Алиасы, как подсказали в комментариях для ответа убрал, чтобы было минимум отличий
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости