创建使用多对多表的查询
Creating a query that uses many to many tables
我有一个包含学术论文的图书馆数据库。论文可能有多个共同作者,并且该信息保存在多对多 table 中,因为我也有 table 个作者。合著者table是这样的:
Paper ID Co-author ID
Paper_1 Author_2
Paper_1 Author_5
Paper_1 Author_7
Paper_3 Author_5
...
我需要创建一个查询 returns 关于特定论文的所有信息,包括它的合著者。当我尝试这样做时,我想到了这样的 table:
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
我不想重复。我还需要显示论文的引用信息,它也包含在一个多对多的 table like authors 和那些 2, the table returns 相同的信息 12论文有 3 位共同作者和 4 次引用的次数。我该如何管理?像这样的 table 会有所帮助:
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
或者如果您对 table 设计有更好的想法,我愿意接受。非常感谢。
我建议您保留最初的结果...
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 语言并非完全为样式目的而构建,您最好将此类格式留给电子表格程序或网站样式表。
我有一个包含学术论文的图书馆数据库。论文可能有多个共同作者,并且该信息保存在多对多 table 中,因为我也有 table 个作者。合著者table是这样的:
Paper ID Co-author ID
Paper_1 Author_2
Paper_1 Author_5
Paper_1 Author_7
Paper_3 Author_5
...
我需要创建一个查询 returns 关于特定论文的所有信息,包括它的合著者。当我尝试这样做时,我想到了这样的 table:
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
我不想重复。我还需要显示论文的引用信息,它也包含在一个多对多的 table like authors 和那些 2, the table returns 相同的信息 12论文有 3 位共同作者和 4 次引用的次数。我该如何管理?像这样的 table 会有所帮助:
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
或者如果您对 table 设计有更好的想法,我愿意接受。非常感谢。
我建议您保留最初的结果...
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 语言并非完全为样式目的而构建,您最好将此类格式留给电子表格程序或网站样式表。