select sum(c.cost)
from (select x.num as x, y.num as y, max(priority) as maxpriority
from numbers x cross join
numbers y join
costs c
on x.num between c.x and c.x + c.deltax and y.num between c.y and c.y + c.deltay
where x.value between PIXELX and PIXELX and DELTAX and
y.value between PIXELY and PIXELY and DELTAY
group by x.num, y.num
) xyp join
costs c
on xyp.x between c.x and c.x + c.deltax and xyp.y between c.y + c.deltay and
xyp.maxpriority = c.priority
エリアごとに異なるコストを持つエリアが設定されたデータベース内の 2 つのポイント間の「コスト」を探すときに、これが答えとして与えられました。私はこれをデータベーススキーマの理解と一緒に機能させようとしてきましたが、現在私#1054 - Unknown column 'x.value' in 'where clause'
は
Name Type Collation Attributes Null Default Extra Action
1 num int(11) No None Change Drop Browse distinct values More
数字と
# Name Type Collation Attributes Null Default Extra Action
1 x int(11) No None Change Drop Browse distinct values More
2 y int(11) No None Change Drop Browse distinct values More
3 deltax int(11) No None Change Drop Browse distinct values More
4 deltay int(11) No None Change Drop Browse distinct values More
5 priority int(11) No None Change Drop Browse distinct values More
費用として。しばらくの間、これを理解しようとしてきました。ポインタをくれた人に感謝します。
今はエラーをスローしませんが、選択した領域内のコストではなく null を返します。