我当前网站的情况基本上是一个复杂的提问者,有大约400个问题。
我有三张桌子。
1.Questions
ID , QID, Question_Text,Event_name
2.用户
ID , Name ,Event_name
3.Answers
ID, User_ID ,Question_ID , Answer_text
现在,每个用户都会对Answers表中的每个问题都有唯一的答案。
我的问题从这里开始。 我更新了问题表中的新问题,因此旧用户在新问题的答案表中没有答案,因此我的syatem会抛出错误。
所以我必须在这些用户的答案表中插入空行,并根据事件在答案表中不存在这些问题。
请帮我写这个查询
我的尝试失败
SELECT `user_id` FROM `answers` inner join users on answers.user_id=users.id inner join questions on questions.id=answers.question_id
谢谢
答案 0 :(得分:0)
如果您有10000个用户并且每个问题将插入10000个记录,那将会产生极大的影响。随着时间的推移,用户将会增加。
如果您可以更改架构,那么它可能是另一种方式。例如 - 您的答案表看起来像 - 答案(ID,User_ID为STRING,Question_ID ),
Answer_text(Answer_id,User_id,Answer_text)。
在 Answer 表中,user_id列是字符串类型列,其中包含逗号分隔的user_id字符串(实际上逻辑上不表示为外键)。在 Answer_text 表中,user_id列是 Users 表的外键。获取记录后,您可以用逗号分隔字符串,并以数组形式获取每个user_id。
现在,当您添加问题时,默认情况下,所有用户ID都以字符串形式汇总并插入。仅插入1条记录。当任何用户回答时,您可以插入Answer_text表。