Итак, я много лет работал с системой с несколькими клиентами и установил ее на сервере с MariaDB 10.3.22. Он продолжает выдавать мне ошибки с такими запросами:
SELECT *
FROM ( (SELECT facturaaid
FROM vtiger_facturaa
INNER JOIN vtiger_crmentity ON crmid = facturaaid
WHERE facturaaid=46747)
UNION ALL
(SELECT IFNULL(idfactura,0)
FROM vtiger_cobranza
WHERE idfactura=46747
GROUP BY idfactura) ) AS tabla
WHERE facturaaid > 0;
Это ошибка
Обратите внимание, что во втором подзапросе у него нет псевдонима в выбранном столбце. Я говорю это, потому что когда я это записываю, это работает отлично. Но если я напишу второй выбор, например, «SELECT idfactura», он будет работать нормально, поэтому проблема (я полагаю) работает над столбцом, а не дает ему псевдоним. Я имею в виду, что следующий запрос работает хорошо.
SELECT *
FROM ( (SELECT facturaaid
FROM vtiger_facturaa
INNER JOIN vtiger_crmentity ON crmid = facturaaid
WHERE facturaaid=46747)
UNION ALL
(SELECT IFNULL(idfactura,0) as facturaaid
FROM vtiger_cobranza
WHERE idfactura=46747
GROUP BY idfactura) ) AS tabla
WHERE facturaaid > 0;
Или этот:
SELECT *
FROM ( (SELECT facturaaid
FROM vtiger_facturaa
INNER JOIN vtiger_crmentity ON crmid = facturaaid
WHERE facturaaid=46747)
UNION ALL
(SELECT facturaaid
FROM vtiger_cobranza
WHERE idfactura=46747
GROUP BY idfactura) ) AS tabla
WHERE facturaaid > 0;
Кроме того, я не пишу никаких предложений ORDER, я не понимаю, почему я должен напишите псевдоним, чтобы он заработал. Проблема в том, что это не единственный такой запрос во всей системе, поэтому я не могу исправить их все, это будет гигантская c трата времени.
Итак, мой вопрос: нужно ли мне понижать версию сервера mariadb (в более старых версиях серверов mysql работает отлично, например Mysql 5)? или есть какое-то исправление конфигурации, которого я не знаю?