4

我想在与我正在查询的页面相关的页面的相同查询属性中显示。

假设我想查询位于德国的城市类别中的所有页面,并且我想显示页面的标题,但我还想显示德国的表面数据,例如。

像这样的东西:{{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}

我知道这行不通,但是您可以看到我想要实现的目标。

4

1 回答 1

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
}}

|}

这将通过模板将查询返回的每个结果打孔,{{{1}}}并根据它生成一行。如果您有其他数据要从主查询返回,您要求的其他属性将作为连续的未命名参数出现(因此,如果您包含| ?population,它将进入模板,{{{2}}}并且需要添加到行结构或它将被丢弃)。

于 2013-03-07T16:57:38.577 回答