我有 2 张桌子:问题和测验。
测验是问题的集合。
测验表如下所示:
测验ID | QuestionIds (NVARCHAR50)
1 | 1,2,3,4,5
2 | 6,7,8,9
Question 表的结构不相关。它的主键是 ID(整数)
对于给定的问题 ID,我想选择所有问题数据
此 SQL 不起作用(给出语法错误)
SELECT qs.* FROM Questions AS qs
INNER JOIN Quiz AS qz on qs.ID IN (qz.QuestionIds)
WHERE qz.QuizId = 2;
SQL 错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'qz.QuestionIds where qz.QuizId = 2 附近使用的正确语法
下面的 SQL 没有给出预期的结果。它只给出 1 个 ID 为 6 的问题。我猜原因是 QuestionIds(在 Quiz 表中)是 nvarchar 字段,而 ID(在问题表中)是整数。
SELECT * FROM Questions WHERE ID IN (SELECT QuestionIds FROM Quiz WHERE QuizId = 2)
我该怎么办 ?
我想通过 SQL/过程/例程提取它。