我有一个应用程序,询问用户多个问题。目的是不显示用户已经回答的问题。因此,如果Bob回答问题X,他将永远不会看到它。但是,如果Sally尚未回答,则会看到问题X。
我有一个MySQL查询,在我的查询编辑器中工作正常。该查询联接两个表,并返回与提供的用户名字符串不匹配的问题,或者该用户名是否为空(表示该问题尚未得到回答)。问题在于sequelize内部,如果用户名字符串为null,则查询返回null字段,但是如果一个问题已由另一个用户名回答,它将显示该问题。
这是我的工作查询:
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.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”字段。