Сколько вложенных запросов позволяет сделать MySQL?
Интересный вопрос.
В стандарте SQL нет теоретического ограничения на уровень вложенности запросов (количество запросов внутри запроса). Но не стоит забывать, что SQL запрос является строкой, и на него действуют жёсткие ограничения того типа данных, с которым система может работать. Поставщики РСУБД также могут накладывать свои ограничения.
Фактически уровень вложенности зависит от возможностей конкретной РСУБД. Microsoft SQL Server, к примеру, раньше налагал ограничение в 32 вложенных запроса, которое подняли в 2005 версии, а после и вовсе убрали. Но даже сейчас остаются ограничения, которые зависят от сложности запроса и мощности железа (в любом случае бесконечно вкладывать запросы у вас не получится).
В текущей версии Oracle поддерживает до 255 уровней вложенности внутри WHERE и не ограничивает вложенность запросов внутри FROM. DB2, PostgreSQL и MySQL не накладывают ограничений на количество подзапросов, хотя все остальные ограничения (такие как длина SQL запроса) для них действуют. Настольные РСУБД, такие как Access и Open Office BASE, не декларируют, сколько уровней вложенности вы можете использовать, но можете быть уверены, что получите ошибку "the query is too complex", если поместите 40 подзапросов в один запрос.
(Отрывок из Discovering SQL: A Hands-On Guide for Beginners, Alex Kriegel, стр. 170)
Mysql обычно сообщает, на каком месте парсер поломался (либо пишет другую ошибку, не связанную с синтаксисом).