Подскажите еще пожалуйста, у меня последний вопрос возник
Не накладно ли для MySQL такой запрос?
SELECT i.*, c.name AS nameC
FROM items i
LEFT JOIN catalog c ON c.id=i.catalog_id
WHERE i.id IN(SELECT t1.item_id
FROM param_values_items_relation t1
LEFT JOIN param_values_items_relation t2 ON t1.item_id=t2.item_id
WHERE
t1.param_value_id = 1849
AND t2.param_value_id = 1329)
AND i.is_active='1'
AND i.catalog_id='182'
AND CONCAT(',',i.labels,',') NOT REGEXP(',11,')
AND i.count > 0
ORDER BY i.ord
Или лучше разбить на два и подставить во второй ID товаров из PHP?
1. запрос
SELECT t1.item_id
FROM param_values_items_relation t1
LEFT JOIN param_values_items_relation t2 ON t1.item_id=t2.item_id
WHERE
t1.param_value_id = 1849
AND t2.param_value_id = 1329
Это вернет ID найденных товаров, например 113894, 113897
1. во второй запрос подставляем эти ID
SELECT i.*, c.name AS nameC
FROM items i
LEFT JOIN catalog c ON c.id=i.catalog_id
WHERE i.id IN(113894,113897)
AND i.is_active='1'
AND i.catalog_id='182'
AND CONCAT(',',i.labels,',') NOT REGEXP(',11,')
AND i.count > 0
ORDER BY i.ord
Еще раз заранее благодарю Вас!!!