Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sequelize原始mysql查询返回空字段_Mysql_Node.js_Sequelize.js - Fatal编程技术网

Sequelize原始mysql查询返回空字段

Sequelize原始mysql查询返回空字段,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我有一个可以向用户询问多个问题的应用程序。目标是不显示用户已经回答的问题。所以,如果鲍勃回答了问题X,他将永远看不到它。然而,如果萨莉还没有回答问题X,她会看到它 我有一个MySQL查询,它在我的查询编辑器中工作得很好。该查询联接两个表并返回一个与提供的用户名字符串不匹配的问题,或者如果该用户名为null,则表示该问题尚未得到回答。问题在sequelize中。如果用户名字符串为空,则查询返回空字段,但如果问题已由另一个用户名回答,则将显示该问题 以下是我的工作查询: select * from

我有一个可以向用户询问多个问题的应用程序。目标是不显示用户已经回答的问题。所以,如果鲍勃回答了问题X,他将永远看不到它。然而,如果萨莉还没有回答问题X,她会看到它

我有一个MySQL查询,它在我的查询编辑器中工作得很好。该查询联接两个表并返回一个与提供的用户名字符串不匹配的问题,或者如果该用户名为null,则表示该问题尚未得到回答。问题在sequelize中。如果用户名字符串为空,则查询返回空字段,但如果问题已由另一个用户名回答,则将显示该问题

以下是我的工作查询:

select * from questions 
left join responses on responses.QuestionId = questions.id 
where responses.username <> 'username string' or responses.username is null
order by rand() limit 1;
以下是我的sequelize查询:

_sequelize.query(
'select * from questions ' +
'left join responses on responses.QuestionId = questions.id ' +
'where responses.username <> "' + req.query.name + '" or responses.username  is null ' +
'order by rand() ' +
'limit 1',
{model : models.Responses})

用户错误。我的关联错误,因此我在问题表中添加了一个“beenAnswered”字段。

尝试将日志记录:console.log添加到Sequelize选项中,以便您可以看到生成的SQL。空响应:执行默认值:从问题左选择*在响应上加入响应。问题id=问题id where responses.username teej或responses.username是空的,按rand limit排序1我认为您需要改写您的问题以使其更清楚。查询返回空字段是什么意思?当然,大多数字段都是空的。你是说所有的字段都是空的吗?为什么用户名字段为空?您应该在代码中检查这一点。