SELECT DISTINCT p.products_image,
p.products_quantity,
m.manufacturers_id,
p.products_id,
pd.products_name,
p.products_price,
p.products_tax_class_id,
p.products_price_sorter,
p.products_qty_box_status,
p.master_categories_id
FROM products p
LEFT JOIN manufacturers m USING(manufacturers_id)
LEFT JOIN products_description pd ON p.products_id = pd.products_id
JOIN products_to_categories p2c ON p.products_id = p2c.products_id
JOIN categories c ON p2c.categories_id = c.categories_id
LEFT JOIN meta_tags_products_description mtpd ON mtpd.products_id= p2c.products_id
AND mtpd.language_id = 2
JOIN products_attributes p2a ON p.products_id = p2a.products_id
JOIN products_options po ON p2a.options_id = po.products_options_id
JOIN products_options_values pov ON p2a.options_values_id = pov.products_options_values_id
WHERE (p.products_status = 1
AND pd.language_id = 2
AND ((pd.products_name LIKE '%t%'
OR p.products_model LIKE '%t%'
OR m.manufacturers_name LIKE '%t%'
OR (mtpd.metatags_keywords LIKE '%t%'
AND mtpd.metatags_keywords !='')
OR (mtpd.metatags_description LIKE '%t%'
AND mtpd.metatags_description !='')
OR pd.products_description LIKE '%t%')))
GROUP BY p.products_id
HAVING sum(pov.products_options_id IN (12, 20)
AND pov.products_options_values_id IN (91,82)) > 0
ORDER BY p.products_sort_order,
pd.products_name;
ответ
изменение HAVING
из
HAVING sum(pov.products_options_id IN (12, 20)
AND pov.products_options_values_id IN (91,82)) > 0
в
HAVING pov.products_options_id IN (12, 20)
AND pov.products_options_values_id IN (91,82)
Почему вы используете> 0? вы используете IN()
Эта же ошибка Неизвестный столбец 'pov.products_options_id' в 'списке полей' – user3422506
вот таблица базы данных http://indiadevdarshan.com/sql.txt – user3422506
Извините, я видел, что вы используете MyISAM ENGINE. Знаете ли вы, что MyISAM имеет только ПОЛНЫЙ ТАБЛИЦУ LOCK на INSERT/UPDATE AND DELETE. Поэтому, если вы изменяете свои данные, ни один другой клиент не может читать из этих таблиц. Когда возможно использование INNODB Engine. Вы видели Комментарий от @Abhik Chakraborty –
Когда вы используете предложение having, и если столбец, используемый в наличии, не находится в выборе, вы получаете эту ошибку, так как наличие будет оцениваться после выбора данных. Поэтому вам нужно иметь 'pov.products_options_id' в списке выбора. –
@Abhik Chakraborty - отлично. я его не видел –
вот таблица базы данных http://indiadevdarshan.com/sql.txt – user3422506