我想在与我正在查询的页面相关的页面的相同查询属性中显示。
假设我想查询位于德国的城市类别中的所有页面,并且我想显示页面的标题,但我还想显示德国的表面数据,例如。
像这样的东西:{{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}
我知道这行不通,但是您可以看到我想要实现的目标。
我想在与我正在查询的页面相关的页面的相同查询属性中显示。
假设我想查询位于德国的城市类别中的所有页面,并且我想显示页面的标题,但我还想显示德国的表面数据,例如。
像这样的东西:{{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}
我知道这行不通,但是您可以看到我想要实现的目标。
我不确定是否有办法将查询直接嵌套在其他查询中。这样做的正常方法是使用模板。因此,您可以定义一个名为的模板(或模板的子页面,如果这进入模板){{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
}}
|}
这将通过模板将查询返回的每个结果打孔,{{{1}}}
并根据它生成一行。如果您有其他数据要从主查询返回,您要求的其他属性将作为连续的未命名参数出现(因此,如果您包含| ?population
,它将进入模板,{{{2}}}
并且需要添加到行结构或它将被丢弃)。