Kiedy Wykonuje kwerendę follwoing Otrzymałem wyjątkiemNiezgodność z MySQL 5.7 (Expression # 1 z klauzuli ORDER BY nie jest w liście SELECT)
Kod błędu: 3065 Expression 1 z klauzuli ORDER BY jest nie na liście SELECT , odwołuje się do kolumny "webstore.level_depth", która nie znajduje się na liście SELECT na liście: ; to jest niezgodne z wyraźną
moje zapytanie
SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `pj_category_shop` cs, `pj_category` c
INNER JOIN `pj_category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = 1 AND cl.id_shop = 2)
WHERE (c.`active` = 1 OR c.`id_category` = 2)
AND cs.`id_category` = c.`id_category` AND cs.`id_shop` = 2
AND c.`id_category` != 1
AND `level_depth` <= 2
AND c.id_category IN (SELECT id_category FROM `pj_category_group` WHERE `id_group` IN (3))
ORDER BY `level_depth` ASC, cl.`name` ASC;
ja nie rozumiem, dlaczego tak się dzieje .. ??
Właściwie powinieneś tylko wykonać jeden z nich. Zmienne GLOBAL wpływają na ogólne działanie serwera, a zmienne SESSION wpływają na operacje dla poszczególnych połączeń klientów. (https://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html). – Andres
Aby użyć wartości z MySQL 5.6, upuść wszystkie oprócz ostatniej opcji: 'ustawić globalny SQL_MODE =" NO_ENGINE_SUBSTITUTION ";' –