2013-10-04 32 views
3

我的查詢不同的結果集的Grails的executeQuery給出了選擇

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

如果您運行的管理工具,這些查詢會發生什麼?此外,您可以嘗試在您的DataSource.groovy中放入「logSql = true」來查看實際正在創建的SQL。 –

+0

現在不能寫出答案,但我認爲結果可能實際上是一個多維數組(一個級別代表列,另一個代表行)。數組的長度是由第一個查詢4返回的嗎? – Stephan

回答

1
  1. 這兩個查詢都會返回多條記錄。

  2. 由於您未應用排序順序,因此無法預測訂單。

  3. 1查詢將返回清單4個元素的列表中,而第二個查詢將僅返回ID值列表