【发布时间】:2018-05-30 02:06:00
【问题描述】:
我创建了一个连接六个表的查询:
SELECT a.accession, b.value, c.name, d.description, e.value, f.seqlen, f.residues
FROM chado.dbxref a inner join chado.dbxrefprop b on a.dbxref_id = b.dbxref_id
inner join chado.biomaterial d on b.dbxref_id = d.dbxref_id
inner join chado.feature f on d.dbxref_id = f.dbxref_id
inner join chado.biomaterialprop e on d.biomaterial_id = e.biomaterial_id
inner join chado.contact c on d.biosourceprovider_id = c.contact_id;
我目前正在使用一个名为 Chado (http://gmod.org/wiki/Chado_Tables) 的 PostgreSQL 架构。我尝试遵守预先存在的模式导致我在同一个表中存放多个连接值(dbxrefprop 表中的两个不同值,biomaterialprop 表中的三个不同值)。查询数据库会导致大量冗余输出。有没有办法通过修改我的查询语句来减少输出冗余?理想情况下,我希望输出类似于以下内容:
test001 | GB0101 | source011 | Faaberg,K.; Lyoo,K.; Korol,D.M. | serum | T1 | Iowa, USA | 01 Jan 2005 | 1234 | AUGAACGCCUUGCAUUACUAUGACUAUGAUU
【问题讨论】:
-
我认为您正在寻找的是 mysql 中的 group_concat() 之类的东西,我不是 postgresql 的大用户,但我认为我发现了与 group_concat 在 mysql 中的功能非常相似的东西。 stackoverflow.com/questions/2560946/…
-
感谢 Michael T 的快速回复。我对 SQL 比较陌生,并且很难清楚地表达一个问题。一个例子是我能设法证明我的问题的最好例子。我同意,类似于 group_concat() 的函数似乎是我需要的。我会试一试。再次感谢!
-
结束问题的更好方法是让@MIchaelT 回答它并获得代表点 - 或者 - 自己回答然后接受它,这样我们就不会再收到另一个未回答的问题.
-
根据您的建议,我已将更新更改为答案,以更好地表明我的问题已得到解决。谢谢。
标签: postgresql