我创建了一个名为subjects
的表,其中包含id
列作为主键和10个主题列(subject1,subject2,....subject10
)。
现在,对于特定的id
,可能会有5个,8个或10个subjects
。对于剩余的5 id
,剩余5 subjects
的{{1}}被遗漏为null
,而{8} subject
的ID为subjects
。
请帮我查询从数据库中检索的内容,这样如果选择了一行包含5个主题的ID,则在检索过程中应该隐藏其余5个null
值。
答案 0 :(得分:0)
您应该重新考虑数据库结构并创建3个表。让我们假设您想要一个链接到一个或多个主题的用户。您可以像这样建模数据库:
用户强>
<强> UserToSubject 强>
<强>主题强>
User表将包含有关用户的任何信息,Subject表将包含有关每个主题的信息,UserToSubject表用于将多个用户链接到多个主题(多对多关系)。
然后,您可以使用JOIN
:
SELECT
u.UserId
s.SubjectID
FROM
User u
JOIN UserToSubject uts ON u.UserId = uts.UserId
JOIN Subject s ON s.SubjectId = uts.SubjectId
GROUP BY
u.UserId
当然,您的用户表可以是任何内容,只要它能识别某些内容。