我有一个包含学术论文的图书馆数据库。论文可能有多个共同作者,而且这些信息保存在多对多表中,因为我还有一个作者表。共同作者表就像:
Paper ID Co-author ID
Paper_1 Author_2
Paper_1 Author_5
Paper_1 Author_7
Paper_3 Author_5
...
我需要创建一个查询,返回有关特定论文的所有信息,包括它的共同作者。当我尝试这样做时,我想出了一个这样的表:
Paper ID Paper Name Publication Date Co-author ...
Paper_1 asd 2013 Author_2
Paper_1 asd 2013 Author_5
Paper_1 asd 2013 Author_7
我不想要这种重复。我还需要显示论文的引文信息,该论文也包含在像作者这样的多对多表中,当论文有3位共同作者和4篇引文时,该表返回相同的信息12次。 。我该如何管理?这样的表会有所帮助:
Paper ID Paper Name Publication Date Co-author Cited by
Paper_1 asd 2013 Author_2 Paper_15
Author_5 Paper_22
Author_7 Paper_23
Paper_25
或者如果您对表格设计有更好的了解,我会对这些表格持开放态度。非常感谢。
答案 0 :(得分:0)
我建议你保留初步结果......
Paper ID Paper Name Publication Date Co-author ...
Paper_1 asd 2013 Author_2
Paper_1 asd 2013 Author_5
Paper_1 asd 2013 Author_7
如果您检查上述内容,则每行都有一个Paper ID
作为标识符。您想要的结果实际上是不完整的数据,您实际要求的是对于查看者来说不完整的NULL数据。
Paper ID Paper Name Publication Date Co-author Cited by
Paper_1 asd 2013 Author_2 Paper_15
NULL NULL NULL Author_5 Paper_22
NULL NULL NULL Author_7 Paper_23
NULL NULL NULL NULL Paper_25
查看您想要的结果,对于Paper_25,技术上没有与Cited By
行相关的数据使其变得多余。 SQL语言并非完全是为了样式而构建的,您最好将这种格式保留为电子表格程序或网站样式表。