我想在与查询页面相关的页面的相同查询属性中显示。
假设我想查询位于德国的City类别中的所有页面,并且我想显示页面的标题,但我也想显示德国的表面数据。
这样的事情:{{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}
我知道这不起作用,但你可以看到我想要实现的目标。
答案 0 :(得分:3)
我不确定是否有办法直接在其他查询中嵌套查询。这样做的常用方法是使用模板。因此,您可以定义一个名为{{tablerow}}
的模板(或模板的子页面,如果它进入模板),其中包含:
<includeonly>
|- valign="top"
| [[{{{1|}}}]]
| {{#show: {{{1|}}} | ?surface }}</includeonly>
<includeonly>
标签很重要,原因我并不理解,如果你把它们遗漏,它会产生错误。然后,您只需使用#ask
运行format = template
查询。 (您可以在查询中构建标题,但我发现将其放在外面更简单。)
{| class="wikitable smwtable sortable"
|- valign="bottom"
! [[City]]
! [[Surface]]
{{#ask: [[Category:City]] [[location::Germany]]
| format = template
| template = tablerow
| link = none
}}
|}
这将通过模板将查询返回的每个结果打为{
,并根据它生成一行。如果您要从主查询中返回其他数据,则您要求的其他属性将作为连续的未命名参数出现(因此,如果您包含| ?population
}{{{2}}}
,那么它将作为{{1}}进入模板,并且需要添加到行结构中,否则它将被删除)。