2017-04-23 108 views
-2

我正在開發一個帶有這個sql代碼的qt程序,代碼的邏輯是,我需要得到一些信息,其中任何引入的字段都是正確的。問題是我想要得到的一個字段nombre.padres在另一個表padres中,並且信息出現的主表是usuarios因此usuarios中的值是[email protected]並且padres中的值[email protected]與文本字段i相關聯想在這種情況下得到​​(nombre.padres)。SQL準備的innerjoin不起作用

我闡述的代碼是這一個:

QSqlQuery query; 
query.prepare("SELECT usuarios.id, usuarios.nombre, usuarios.curso, usuarios.grupo, usuarios.alergias, padres.nombre" 
    "FROM usuarios INNER JOIN padres ON usuarios.idmail = padres.email WHERE (padres.nombre=:apellidointro OR" 
    " usuarios.nombre=:nombreintro OR usuarios.id=:idintro OR usuarios.curso=:cursointro OR usuarios.grupo=:grupointro " 
    "OR usuarios.alergias=:alergiasintro)"); 
query.bindValue(":nombreintro", ui->lineEdit_3->text()); 
query.bindValue(":apellidointro", ui->lineEdit_4->text()); 
query.bindValue(":idintro", ui->lineEdit_5->text()); 
query.bindValue(":cursointro", ui->comboBox_2->currentText()); 
query.bindValue(":grupointro", ui->comboBox->currentText()); 
query.bindValue(":alergiasintro", ui->lineEdit_6->text()); 
query.exec(); 

不過是給我下面的錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN padres ON usuarios.idmail = padres.email WHERE (padres.nombre='' OR u' at line 1 QMYSQL: Unable to execute query

在兩個表中有一個名爲​​列,這就是爲什麼我們有nombre.usuarios這還好吧和nombre.padres這是造成我的問題。

總結我想從表中得到padres鏈接名稱[email protected]當用戶輸入nombre.padres但該查詢我也想從usuarios表中的多個信息。

回答

1

如果打印出來,你正在運行的查詢時,你會看到它開頭:

SELECT usuarios.id, usuarios.nombre, usuarios.curso, usuarios.grupo, usuarios.alergias, padres.nombreFROM usuarios 

這顯然是語法不正確(滾動到看到FROM)。

瞭解如何進行一些基本的調試。

+0

謝謝你的回答,你是對的。有些禮貌將不勝感激:) –