Это выглядит , как будто вы выполняете два вложенных запроса для одного и того же соединения, но: это обычно не поддерживается (если у вас не включен "MARS", что обычно является плохой идеей).Вы должны увидеть исключение из-за того, что в соединении уже есть открытый считыватель данных.Вы должны закончить первый читатель, прежде чем начать беспокоиться о дополнительных данных.Вы могли бы сделать это путем буферизации данных, но, честно говоря, я подозреваю, что вы могли бы также заново обработать запрос, чтобы он представлял собой либо один запрос с объединением, либо два запроса в одном и том же SQL - это также было бы более эффективным(он избегает "N + 1").
Другая основная проблема заключается в том, что вы объединяете данные для создания SQL, что неизменно является плохой идеей.В худшем случае это дыра для внедрения SQL, а в лучшем случае она насыщает кэш вашего плана запросов.Итак: пожалуйста, используйте параметры вместо конкатенации.Параметры также позволяют избежать таких проблем, как экранирование, перенос строк в кавычки и проблемы i18n / l10n, касающиеся форматирования целых чисел, дат и т. Д.