2013-10-04 4 views
3

моего запросаGrails ExecuteQuery дает различные ResultSet на выбери

def myQuery = PublicTraining.executeQuery("SELECT t.id, t.isSoldOut, t.course.ebPrice, t.offerPrice FROM PublicTraining t Where exists (from t.course.tracks AS tracks where tracks.id IN (1))") 

, которая возвращает несколько записи, которая является неправильным

если я изменить его на

def myQuery = PublicTraining.executeQuery("SELECT t.id FROM PublicTraining t Where exists (from t.course.tracks AS tracks where tracks.id IN (1))") 

возвращает правильный результат установить

Почему выбор столбцов меняет результат?

+1

Что произойдет, если запустить эти запросы в инструменте управления? Кроме того, вы можете попробовать поставить «logSql = true» в свой DataSource.groovy, чтобы увидеть, какой SQL фактически создается. –

+0

Не могу написать ответ прямо сейчас, но я думаю, что результатом может быть многомерный массив (с одним уровнем, представляющим столбцы, а другой представляющий строки). Является ли длина массива возвратом вашего первого запроса 4? – Stephan

ответ

1
  1. Оба запроса возвращают несколько записей.

  2. Вы не можете спрогнозировать заказ, так как вы не применяете не порядок сортировки.

  3. первого запрос возвращает список из списка 4-х элементов, в то время как второй запрос будет возвращать только Список идентификатора значение

Смежные вопросы