Я ищу так: 1.нотепадом ++ ищу вхождение строки (если не понимаю где это) , например, "SELECT p.product_id, (SELECT AVG(rating) AS total" - (беру чистый фрагмент,без подстановки переменных, без таких вариантов: LEFT JOIN " . DB_PREFIX . "product_to_store) http://joxi.ru/kBGbUdg5CbAnZBK9xiY
2. Нашел, в данном случае это function getProducts. Далее в большинстве случаев проходит такой вариант: проверяю данные, пришедшие в запрос - перед текстом запроса ставлю
$buf=print_r($data,true);$this->log->write($buf);
где $data массив- параметр пришедший в функцию public function getProducts($data = array()). В итоге в журнале ошибок у меня будет виден этот массив. Так же я могу получить текст запроса: если код имеет вид "$this->db->query("SELECT op.product_id..................", то выношу текст запроса в переменную - $sql = "SELECT op.product_id................."; Следующей строкой пишу запись в журнал ошибок текста запроса $this->log->write( $sql); И следующей выполнение запроса $this->db->query( $sql); С полученным текстом запроса уже играюсь в phpMyAdmin. Можно и сразу скопировать ошибку и в phpMyAdmin. В вашем случае надо смотреть что приходит в массиве и подставляется в WHERE p.product_id in (.