我在.net(visual studio)上做了一个项目,我正在使用sql数据库。我想知道如何在同一时间比较多个值。有一个简单的&简单的方法吗?
两个表之间的比较。例如:
Table 1 (student) has:
Name
Id
Book1 (art for example)
Book2 (math)
Book3 (math 2)
Book4 (history)
Book5 (physics)
Table 2 (teacher) has:
Name
Id
Book1
Book2
Book3
Book4
Book5
对于每个学生,我需要用老师的书比较他的书(书本身的名字)(看看是否有匹配)。 另外,我的数据库是否更有效率?
有什么建议吗?
答案 0 :(得分:0)
有几种方法可以完成您的项目。如果容易与否取决于您的需要,约束,您的能力等。
据我了解,您应该有4个表来进行更好的数据库设计。你将会有; (事实上,你应该有更多的表来提供更好的设计,请参阅What is Normalisation (or Normalization)?)
然后你可以像<; p>那样执行SQL语句
-- Fetch name of the books for a specific student
SELECT b.NameOfTheBook
FROM Students AS s INNER JOIN StudentBooks AS b ON s.Id = b.StudentId
WHERE s.Id = <id of the student>
-- Fetch name of the books for a specific teacher
SELECT b.NameOfTheBook
FROM Teachers AS t INNER JOIN TeacherBooks AS b ON t.Id = b.TeacherId
WHERE t.Id = <id of the student>
这只是一个示例,因此您可以增强模型并执行更复杂的SQL语句。
答案 1 :(得分:0)
前面的答案涵盖了进一步规范化数据库结构的优点,但我建议还添加一本书籍(Id,Name),并让StudentBooks和TeachersBooks表格与Books表格的ID相关联。通过这种方式,您可以考虑重命名书籍(即修复拼写错误)。从长远来看,这应该会产生更加一致的数据。