Некоторые причины, по которым в MySQL могут возникать ошибки при использовании LIMIT и UNION:
- Shift-reduce конфликт. habr.com Парсер не может понять, к какому запросу относится LIMIT: ко всему UNION или к конкретному подзапросу. habr.com
- Неправильное использование скобок. stackoverflow.com При использовании LIMIT необходимы круглые скобки вокруг подзапросов. stackoverflow.com
- Несоответствие колонок в запросах. sky.pro Число и типы данных столбцов должны совпадать в каждом из подзапросов UNION. sky.pro
- Использование UNION DISTINCT. sky.pro Этот оператор исключает дубликаты, что может привести к необходимости учесть это при расчёте LIMIT для подзапросов. sky.pro
Чтобы избежать ошибок, рекомендуется следовать рекомендациям по сочетанию операторов UNION и LIMIT, например: применять LIMIT внутри подзапросов, а затем объединять их с помощью UNION. sky.pro