gpt4 book ai didi

mySQL:如何填写此问题 - 答案表

转载 作者:行者123 更新时间:2023-11-29 09:18:13 24 4
gpt4 key购买 nike

我有5张 table

问题_答案

AID  |  QID  |  otherStuff  |  Username  |  UserID  |  otherStuff

用户

UserID  |  Username

节点

ID  |  Type  |  UserId 

问题

ID  |  oldQ_ID 

答案

ID  |  Question_Link

鉴于其他表中的信息,我必须填写空表 Questions_Answers

对于每个答案(行),Question_Answer 表应该包含它所属的问题。此外,对于每个答案,用户名和 userId。

节点表包含问题和答案。类型字段有 2 个可能的值“问题”和“答案”,指定该行确实是问题还是答案。它包含编写节点的usedId。

问题答案表中,ID字段是新ID。(我已将这些节点导入到新系统中)。这些是应添加到 Question_answer 表中的 ID(AID 和 QID 字段,分别用于答案和问题)。

问题表中,oldQ_ID 只能用于为其问题分配答案,而不添加到 Questions_Answer 表中。

答案表中的 Question_Link 将每个答案链接到其问题,并引用每个问题的旧 ID (oldQ_ID) (!)。

还有一件事。我需要将 Questions_Answers 表中的字段插入正确的字段,跳过无用的字段。

谢谢..

候选解决方案:

INSERT INTO node_comments (cid, nid, name, uid)
SELECT a.nid, q.nid, u.name, u.uid
FROM node AS n
JOIN content_type_answer AS a ON a.nid = n.nid
JOIN content_type_forum AS q ON q.field_oldqid_value = a.field_qlink_value
JOIN users AS u ON u.uid = n.uid
WHERE n.type = "answer";

最佳答案

更新:
我已更新答案以使用 Node.ID 作为 Questions 表的联接关系。我认为这与您所追求的很接近,如果不太正确,更改应该不会太棘手:

INSERT INTO Questions_Answers (AID, QID, Username, UserID)
SELECT a.ID, q.ID, u.Username, u.UserID
FROM Node AS n
JOIN Users AS u ON u.UserID = n.UserID
JOIN Questions AS q ON q.oldQ_ID = n.ID
JOIN Answers AS a ON a.Question_Link = q.oldQ_ID
WHERE n.Type = "answer";

以下是查询的作用:

  1. 对于 NodeTypeanswer 的每一行:
    • Node.UserIDUsers.UserID 进行比较,以从 Users 表中查找匹配的行。
    • Node.IDQuestions.oldQ_ID 进行比较,以从 Questions 表中查找匹配的行。
    • Questions.oldQ_IDAnswers.Question_Link 进行比较,以从 Answers 表中查找匹配的行。
  2. 从匹配中选择 Answers.IDQuestions.IDUsers.UsernameUsers.UserID在第 1 步中,将这些内容插入到 Questions_Answers 表中。

如果您需要将 Node.ID答案而不是问题相匹配,那么您需要像 Answers.oldA_ID 这样的列答案 表。您无法将 Node.IDQuestions.ID 进行比较,因为 Node.ID 是旧 ID,而 Questions.ID > 是新 ID。

关于mySQL:如何填写此问题 - 答案表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com