我可以在使用其他查询的免费基础上创建内部联接吗?
我尝试在2个查询之间创建连接:
首先,选择所有类型的艺术家与没有必杀技的必杀技一样:
[{
"id": null,
"name": null,
"name!=": "nirvana",
"type": "/music/artist",
"genre": [{
"name|=": [
"Punk rock",
"Grunge",
"Alternative rock",
"Rock music",
"Hardcore punk"
]
}]
}]
第二,选择所有类型的必杀技:
[{
"name": "nirvana",
"type": "/music/musical_group",
"/music/artist/genre": []
}]
我想创建一个这样的查询,但它不起作用。
[{
"id": null,
"name": null,
"name!=": "nirvana",
"type": "/music/artist",
"genre": [{
"name|=":
[{
"name": "nirvana",
"type": "/music/musical_group",
"/music/artist/genre": []
}]
}]
}]
答案 0 :(得分:1)
我不确定为什么你需要将这一切都作为一个查询来完成。由于Nirvana的音乐跨越了许多非常流行的类型,您的查询可能会返回数千个结果,这意味着您必须提出多个API请求才能获得所有结果。
在任何情况下,这里都是一个MQL查询,它可以找到所有与Nirvana至少有一个共同音乐类型的乐队:
[{
"id": null,
"name": null,
"/music/artist/genre": [{
"id": null,
"name": null,
"!/music/artist/genre": {
"id": "/m/0b1zz",
"name": null
}
}]
}]
第二类型属性前面的感叹号意味着我们想要反向关系即。 “有这种类型的音乐艺术家”而不是“这位艺术家的音乐流派”。
请注意,我使用MID(/ m / 0b1zz)来代表Nirvana。您不应该使用名称来标识查询中的主题,因为它们不是唯一的。你想要1987年由Kurt Cobain创立的 Nirvana的结果,而不仅仅是任何名为Nirvana的乐队。