【发布时间】:2013-09-30 20:26:11
【问题描述】:
我正在为学术论文创建存档。每篇论文可能有一个作者,也可能有多个作者。我按以下方式创建了表:
- 表 1:PaperInfo - 每行包含有关纸张的信息
- 表 2:PaperAuthor - 只有两列:包含 PaperID 和 AuthorID
- 表 3:作者列表 - 包含作者信息。
还有一个表 4 链接到表 4,其中包含作者所属的大学列表,但我现在将其省略,以防它变得太复杂。
我希望有一个查询,它将所有三个表链接在一起,并在表中显示记录集的纸张信息,列如下:
- 论文题目
- 论文作者
在某些情况下,“论文作者”列将包含多个作者。
我写了以下查询:
SELECT a.*,b.*,c.*
FROM PaperInfo a, PaperAuthor b, AuthorList c
WHERE a.PaperID = b.PaperID AND b.AuthorID = c.AuthorID
到目前为止,我得到的每一行的结果是每行一个作者。我希望在一列中包含更多作者。无论如何都可以这样做吗?
注意:我使用 Access 2010 作为我的数据库。
【问题讨论】:
-
这取决于您使用的 SQL 风格。例如:这可以在 PostgreSQL(使用 array_agg 函数)/MySQL(使用 group_concat 函数)中轻松完成。所以,告诉我们您正在使用什么 SQL 数据库。
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
标签: sql ms-access-2010