2015-02-09 6 views
0

Я вставляю другой столбец в виде списка моего модуля, вставляя значения с помощью функции getList, я модифицировал sql для фильтрации в функции renderList, но я не могу использовать псевдоним в where where.Prestashop - List view filter

Как это исправить?

ошибка я получил это следующий:

Uncaught Unknown column 'product_supplier_name' in 'where clause'<br /><br /> 
 SELECT SQL_CALC_FOUND_ROWS a.* , s.name AS product_supplier_name FROM ps_supplier_bill a LEFT JOIN ps_supplier s ON s.id_supplier = a.id_product_supplier WHERE 1 AND product_supplier_name LIKE '%fa%' ORDER BY product_supplier_name asc LIMIT 0,50

ответ

0

Правильный запрос должен быть таким:

SELECT SQL_CALC_FOUND_ROWS a.* , s.`name` AS product_supplier_name FROM `ps_supplier_bill` a LEFT JOIN `ps_supplier` s ON s.`id_supplier` = a.`id_product_supplier` WHERE 1 AND s.`name` LIKE '%fa%' ORDER BY s.`name` asc LIMIT 0,50 

Это невозможно непосредственно использовать псевдоним в WHERE, так как хронологически, ГДЕ происходит до SELECT, который всегда является последним шагом в цепочке выполнения. REFER

С MySQL документ:

Стандарт SQL запрещает ссылки на псевдонимы столбцов в ИНЕКЕ. Это ограничение наложено, потому что, когда вычисляется предложение WHERE, значение столбца может еще не определено.

MySQL doc

+0

Спасибо, но проблема в том, что я не знаю, как изменить положение, где поставить 's.name' вместо' product_supplier_name' для запроса – DeMi