Фильтрация по отстутствующим допсвойствам

#
Фильтрация по отстутствующим допсвойствам
Привет всем,
натолкнулся на типовую задачу, ответ навскидку найти не удалось.
Имеется допсвойство, необходимо реализовать фильтрацию товаров в ИМ по нему.
Собственно, с XSLT и PHP проблем нет, вот код фильтрации:

/* Ограничение по наличию */
      if(isset($_GET['in_stock']) AND $_GET['in_stock'] == "on")
      {
         $element['type'] = 1;
         $element['prefix'] = 'AND';
         //$element['name'] = '';
         $element['property_id'] = 194;
         $element['if'] = '=';
         $element['value'] = '0';
         $element['sufix'] = '';
         $param['select'][] = $element;
         $external_propertys['in_stock'] = "on";
         /* Применять фильтр */
         $external_propertys['apply_filter'] = true;

      }


Замечательно выводит те товары, у которых данное допсвойство было хоть раз проставлено в 0 или 1 через редактирование товара. Свойство - флажок.

Для тех товаров, которым данный флажок ни разу не проставлялся, фильтр не срабатывает, т.к. ни значение 0, ни 1 в таблице свойств им не присвоено.

Вот соответствующий громоздкий SQL-запрос:

SELECT SQL_CALC_FOUND_ROWS DISTINCT shop_items_catalog_table.shop_items_catalog_item_id  FROM shop_items_catalog_table  LEFT JOIN shop_list_of_properties_table
            ON shop_items_catalog_table.shop_shops_id = shop_list_of_properties_table.shop_shops_id
            LEFT JOIN shop_properties_items_table
            ON shop_items_catalog_table.shop_items_catalog_item_id = shop_properties_items_table.shop_items_catalog_item_id
            AND shop_properties_items_table.shop_list_of_properties_id = shop_list_of_properties_table.shop_list_of_properties_id     WHERE  shop_items_catalog_table.shop_items_catalog_is_active = '1' AND shop_items_catalog_table.shop_items_catalog_modification_id = '0' AND shop_items_catalog_table.shop_items_catalog_access IN(0,-1) AND shop_items_catalog_table.shop_shops_id='7'    AND shop_items_catalog_table.shop_groups_id = '642'   AND (shop_items_catalog_table.shop_items_catalog_putend_date >= '2012-12-06 22:53:00' OR shop_items_catalog_table.shop_items_catalog_putend_date ='0000-00-00 00:00:00') AND shop_items_catalog_table.shop_items_catalog_putoff_date <= '2012-12-06 22:53:00'   AND shop_list_of_properties_table.shop_list_of_properties_id=194 AND shop_properties_items_table.shop_properties_items_value = '0'    AND (        1     )    and  shop_groups_id   NOT IN (661, 662)   HAVING 1  ORDER BY shop_items_catalog_table.shop_items_catalog_date_time Asc  LIMIT 0, 70


К сожалению, не могу сообразить, как его модифицировать, чтобы JOIN игнорировал условия, если соответствующего поля для данного товара в таблице свойств не обнаружено. И далее, как изменить PHP, чтобы он генерировал соответствующий запрос.
Спасибо заранее!
#
Re: Фильтрация по отстутствующим допсвойствам
Наступил на те же грабли
Кто нибудь подскажет выход?
#
Re: Фильтрация по отстутствующим допсвойствам
Воспользовался $param['NotIn']
Авторизация