2017-04-23 77 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

谢谢你的回答,你是对的。有些礼貌将不胜感激:) –