如何从数据库循环和 select

How to loop and select from database

我正在使用 Laravel 和 MySQL。我需要从数据库中获取要显示的下一个问题。

用户可以注册多个表单。每个问题都可以在表单之间共享,也可以在一个表单中独有。

以与答案中不存在的用户ID匹配的任何形式获取下一个问题(按问题顺序)。

有没有一种方法可以在一个数据库查询中执行此操作?或者我应该循环查找下一个未回答的问题。

这是一个应该与您所描述的内容相匹配的解决方案,针对特定用户未回答的任何表单返回第一个问题(question_id)(用户是您提供给参数化查询):

SELECT f.form_id, f.question_id
FROM questions AS q
INNER JOIN forms AS f
  ON f.question_id = q.id
LEFT OUTER JOIN answers AS a
  ON a.question_id = q.id AND a.user_id = ?
WHERE a.question_id IS NULL
ORDER BY q.id LIMIT 1;