Это будет работать для MySql 8.0:
with
farmers as (
SELECT row_number() over ( order by null ) rn, farmer, field from farmers
WHERE field = 'apple'
),
sales as (
SELECT row_number() over ( order by null ) rn, fruit, amount from sales
WHERE fruit = 'apple'
)
select s.fruit, f.farmer, s.amount
from sales s left join farmers f
on f.rn = s.rn
| fruit | farmer | amount |
| ----- | ------ | ------ |
| apple | ben | 50 |
| apple | joanna | 30 |
| apple | null | 30 |
Редактировать [ 1110] для MySql 5.5:
select s.fruit, f.farmer, s.amount
from (
select (@row_number1:=@row_number1 + 1) AS rn, fruit, amount
from sales, (select @row_number1:=0) t
where sales.fruit = 'apple'
) s left join (
select (@row_number2:=@row_number2 + 1) AS rn, farmer
from farmers, (select @row_number2:=0) t
where farmers.field = 'apple'
) f
on f.rn = s.rn
В настоящее время существует более одной спецификации, с которыми следуют популярные проприетарные и открытые исходные реализации пространственных баз данных:
Postgis, Oracle, Microsoft SQL Server и к какой-то ограниченной степени MySQL Все базы данных реализуют стандартные интерфейсы для манипулирования пространственными данными. Однако, несмотря на эти довольно стандартизированные функции, все базы данных обычно отличаются от простого уровня SQL, что может сделать базу данных - агностическую реализацию вашего решения. Скорее всего, вы должны обзорить функции, которые вы заинтересованы и сравните, какие различные поставщики предоставляют.
Например, расширения GIS для MySQL и для PostgreSQL оба следуют за OpenGIS "Простая Спецификация Функций для SQL" стандарт.
Я не попробовал его, но Google говорит мне, что FDO является "API с открытым исходным кодом для управления, определения и анализа картографических данных независимо от того, где это хранится". Это перечислено на osgeo.org - точка в ее пользу, по-моему.
Существуют поставщики для MySQL & Oracle. Неутешительно, хотя SQL Server и Постстекло не перечислены на странице поставщиков FDO.
Единственным стандартом, о котором я знаю, является http://www.opengeospatial.org/standards/sfs, и я не знаю, как хорошо все пространственные расширения базы данных реализуют его.
существует много геобаз данных, которые доступны с, в спящем режиме пространственные
использованию слоя абстракции нравится, в спящем режиме, хорошая идея так или иначе, если Вы планируете записать приложение агностика базы данных. hibernatespatial заполняет этот разрыв для гео-функций.