我有两个表 app 和 pricehistory app 上有一个主索引 ID,它是 pricehistory 上的 int 我有两个字段 id_app (int)、price(float) 和 dateup (date) 以及“id_app, dateup”上的唯一索引
我正在尝试获取应用程序的最新(日期)价格:
select app.id,
( select price
from pricehistory
where id_app=app.id
order by dateup desc limit 1)
from app
where id=147
Run Code Online (Sandbox Code Playgroud)
解释选择有点奇怪,因为它返回 1 行但它仍然进行文件排序:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY app const PRIMARY PRIMARY 4 const 1
2 DEPENDENT SUBQUERY pricehistory ref id_app,id_app_2,id_app_3 id_app 4 const 1 Using where; Using filesort
Run Code Online (Sandbox Code Playgroud)
为什么只有 1 行时需要文件排序?以及为什么在我索引所需的所有文件时进行文件排序(id_app 和 dateup)
应用程序有 …
所以我有这个页面 ID 12517871:https ://fr.wikipedia.org/wiki ? curid = 12517871
我想从这里的底部获取标识符https://www.wikidata.org/wiki/Q64007200
使用 sparql,但我不知道该怎么做。
我知道我必须使用类似的东西
SELECT ?sitelink ?itemLabel ?sitelinkLabel ?article ?cid WHERE {
?sitelink schema:isPartOf <https://fr.wikipedia.org/>.
}
Run Code Online (Sandbox Code Playgroud)
但后来我不知道如何按页面 id 搜索以及如何获取标识符(imdb、allocine ..)
谢谢
编辑:我正在使用此查询https://w.wiki/GD5但它随机不返回任何内容。要测试这种随机性,请更改“限制”上的数字
SELECT ?propertyclaim ?value ?item WHERE {
hint:Query hint:optimizer "None" .
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "fr.wikipedia.org" .
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam mwapi:generator "revisions" .
bd:serviceParam mwapi:pageids "12148688" .
?item_ wikibase:apiOutputItem mwapi:item .
bd:serviceParam wikibase:limit 3
}
BIND (COALESCE(?item_, " ") AS ?item)
?item ?propertyclaim ?value …Run Code Online (Sandbox Code Playgroud)