我正在为学术论文创建一个存档。每篇论文可能有一位作者或多位作者。我创建以下列方式表:将三个表连接在一起
- 表1:PaperInfo - 每行包含纸张
- 表2的信息:PaperAuthor - 只有两列:包含PaperID,并且属于AuthorID
- 表3:AuthorList - 包含作者信息。
还有一个与表4相关的表4,表4列出了作者所属的大学列表,但如果过于复杂,我将暂时忽略它。
我希望有一个查询,将所有三个表连接在一起,并在表中显示记录的纸张的信息,与诸如下列:
- 文章
- 论文作者
列“Paper Authors”在某些情况下将包含多个作者。
我已经写了下面的查询:
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数据库。 – 2013-09-30 12:07:19
您正在使用哪些DBMS? Postgres的?甲骨文? –