当前位置: 首页 > 知识库问答 >
问题:

Musicbrainz SQL查询以获取发布组的曲目

乌璞瑜
2023-03-14

我使用musicbrainz.orgpostgresql数据库,我已经安装在本地,并通过python访问。

如何创建一个SQL查询来输出发布组的所有跟踪?我能够获得与特定乐队相关的适当艺术家信息和发行版,但使用以下查询,发行版的曲目是错误的:

strsql_band = "SELECT artist.id, artist.gid, artist.name, artist.comment FROM artist WHERE artist.name=%s AND type>1 ORDER BY type, artist.last_updated DESC"
strsql_memberid = "SELECT entity0, link.begin_date_year, link.end_date_year FROM l_artist_artist l JOIN link ON l.link=link.id WHERE entity1=%s AND link_type=103"
strsql_release = "SELECT id, release_group.name FROM release_group WHERE artist_credit=%s"
# This does not return the correct tracks for the release
strsql_track = "SELECT id, position, name, length FROM track WHERE artist_credit=%s LIMIT 15"

任何帮助都将不胜感激,我已经为此绞尽脑汁好几个小时了。

共有1个答案

乜明朗
2023-03-14

中音和音轨表将为您提供此信息

以下是适用于我的案例的查询:

SELECT
    array_agg(track.name) as track_list,
    release.gid as release_gid,
    release.release_group as release_group_id
FROM track
INNER JOIN medium
 ON track.medium=medium.id
INNER JOIN release
 ON medium.release=release.id
GROUP BY release.gid, release.release_group limit 5;

样本结果

release_gid release_group   track_list
00000363-74c9-4c3b-bef7-a433eb9687e3    950559  {"Small Screen",Alice,Dauntless,Lullaby,"Grinding the Mill","Four Colors","2000 Gods","This Life","More Than Meets the Eye","The World"}
00000ba0-d5e2-41d7-9c5d-48e8eb04226a    388941  {"Ai, Vanna","Dod māmiņa, kam dodama","Mēs sūdzēsimies Strazdbūrā","Ar Eiropu plecos","Mīļais mans (Oi ļuļi, oi ļuļi)","Tu tik lūr, monamūr","Kocēni, Dikļi un Tožas","Sev augstu laimi vēlēju","Happy mērsrags","Tur es dzēru, tur man tika","Pritonā pie eglītes","Kur ir manas dāvaniņas","Iespraud svecīti","Ints un Ģirts","Mazs putniņš kājām... (Vai Rīga gatava?)","Melngalvju blūzs",Siergriezējs,"Zeva dziesma","Kentaura skaistumkopšanas salonā","Es sakūru uguntiņu (Gaisā skrēja)","Tu nesit... (Nestandarta žoklis)"}
00000ff3-8918-400f-89d5-ec80f52465bf    530779  {"SING IT","Precious Days",トキメキ}
0000172d-6e43-4d7d-8647-da718593a97a    2382060 {"J'ai besoin d'un doliprane","Cœur brisé","Mon proprio","J'me demande","Extra extra terrestre","Bienvenue chez moi (dans ma coloc)","L'amour c'est du pipeau","La caissière du casino",Jean-Marc,"Toutes des salopes"}

 类似资料:
  • 本文向大家介绍MongoDB中查询数组以获取特定值,包括了MongoDB中查询数组以获取特定值的使用技巧和注意事项,需要的朋友参考一下 要从数组中获取特定值,请使用aggregate()和$project。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是如何在MongoDB中查询数组- 这将产生以下输出-

  • 如何获得最大截面。Id位于下面的文档中,其中包含集合_id=一些参数 我在下面试过了 但是,它不是返回max int单个值,而是返回一个包含部分数组中所有Ids的数组。 在节点中执行时,进一步执行相同的查询。js它返回一个空数组。

  • 问题内容: 我有一个可以对所有类别进行建模的类,可以对它们进行分层排序。 我需要按等级对所有类别进行排序(我的意思是每个父亲都跟随其子级,而父亲在每个级别上按字母顺序排序),例如可以使用oracle中的PRIOR进行分类。是否可以使用JPA查询(而非SQL查询)来执行此操作? 谢谢。 问题答案: 简短的答案是:没有,没有标准的方法可以做到这一点。 您必须使用本机sql。 您可能可以扩展Oracle

  • 问题内容: 如果我有一个表列,,, 并且我想运行一个sql查询以获取数据集中最早的记录。 您可以在查询中执行此操作,还是需要在事实之后循环? 我想获取该记录的所有字段。 问题答案: 如果您只想要日期: 如果您需要所有信息: 尽可能避免循环。循环通常会导致游标,游标几乎从来没有必要,而且常常效率很低。

  • 我如何获得所有的发布组和发布日期的艺术家在一个电话与musicbraz api?我能做到这一点的最接近的方法是使用: 但是,有些发布组不存在。例如,使用上面的调用,“EP”、“单混音”和一些非官方版本都没有出现。基本上,我希望能够制作与musicbrainz相同的列表,当你进入艺术家的主页进行“所有”发行时: 此外,上面的api调用不返回发布日期。有什么建议吗?这些是虫子吗?报告此事的最佳地点是哪

  • 问题内容: 如果Ajax请求失败,我想捕获该错误并显示相应的消息。 我的代码如下所示,但是我无法捕获失败的Ajax请求。 我发现,当Ajax请求失败时,“ Error in Ajax”将永远不会执行。 如何处理Ajax错误并在失败时显示适当的消息? 问题答案: 从jQuery 1.5开始,您可以使用延迟对象机制: 另一种方法是使用: