2017-04-24 45 views
0

我正在開發一個查詢,我選擇以下值incidencias.idusuario, incidencias.fecha, usuarios.nombre, usuarios.curso, usuarios.grupo, padres.nombre雙內連接在Qt中不工作的查詢

我創建了以下查詢,因爲字段padres.nombreincidencias.fecha與usuarios位於不同的表中。

查詢是

QSqlQuery query; 
query.prepare("SELECT incidencias.idusuario, incidencias.fecha, usuarios.nombre, usuarios.curso, usuarios.grupo, " 
"padres.nombre FROM usuarios INNER JOIN incidencias ON incidencias.idusuario = usuarios.id " 
"INNER JOIN padres ON padres.email = usuarios.idmail " 
"WHERE incidencias.fecha >= :fechainicio AND incidencias.fecha <= :fechafinal"); 
QDate fechadesde = ui->dateEdit->date(); 
QDate fechahasta = ui->dateEdit_2->date(); 
int fechadesdeST = fechadesde.toJulianDay(); 
int fechahastaST = fechahasta.toJulianDay(); 
query.bindValue(":fechainicio", fechadesdeST); 
query.bindValue(":fechafinal", fechahastaST); 
query.exec(); 

打印時,它的每一個工作,因爲它應該,但最後的值,padres.nombre是給我下面的錯誤:

QMYSQLResult::data: column 6 out of range 

但是我打印的計數列返回並且它很好,6

+0

列數報告爲6;你是否試圖以1-6的方式訪問它們,而不是0-5? – TheDarkKnight

+1

的確,這就是問題所在,@TheDarkKnight爲什麼你不把它作爲答案,所以我可以標記是在解決? –

回答

1

SQL期望從1開始的索引,而通常訪問代碼數組f從0到x。

因此,對於6個返回的項目,值6超出範圍;使用索引0-5來訪問返回的數據。