假设您有一个关系,它需要以某种方式引用另一个表中不同项的任意(变量)数量(通过它们的键)。这将如何实现?

最佳答案

为此,通常会有一个中间表。下面是一个模式示例

Table - Question
QuestionID
Title
Body
Date

Table - Tag
TagID
TagName

Table - QuestionTag
QuestionID
TagID

在这样的模式中,问题表包含问题。标记表包含可应用于问题的标记列表(与此网站类似)。QuestionTag将两者链接在一起,这样一个问题就可以链接到任意数量的标签。要使用它的标签获得特定的问题,可以执行以下操作
SELECT Question.QuestionID, Question.Title,Question.Body,Question.Date,GROUP_CONCAT(Tag.TagName)
FROM Question
LEFT JOIN QuestionTag
ON Question.QuestionID = QuestionTag.QuestionID
LEFT JOIN Tag
ON QuestionTag.TagID = Tag.TagID
WHERE Question.QuestionID=@QuestionID
GROUP BY Question.QuestionID

关于mysql - 在mysql中引用多个项目的正确方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7693874/

10-09 18:47