Sql является стандартом в языках запросов, однако иногда он немного многословен. В настоящее время я пишу ограниченный язык запросов, который сделает мои общие запросы быстрее и с меньшими затратами на ум.
Если вы напишите запрос по хорошей схеме базы данных, по сути, вы всегда будете соединяться по полям первичного ключа, внешнего ключа, поэтому я думаю, что нет необходимости каждый раз указывать их.
Таким образом, запрос может выглядеть следующим образом.
select s.name, region.description from shop s
where monthly_sales.amount > 4000 and s.staff < 10
отношения будут
магазин - много к одному - регион,
магазин - один ко многим - month_sales
sql, к которому будет относиться, будет
select distinct s.name, r.description
from shop s
join region r on shop.region_id = region.region_id
join monthly_sales ms on ms.shop_id = s.shop_id
where ms.sales.amount > 4000 and s.staff < 10
(отличное есть, когда вы присоединяетесь к таблице один ко многим (month_sales), и вы не выбираете поля из этой таблицы)
Я понимаю, что оригинальный запрос, приведенный выше, может быть неоднозначным для определенных схем, т. Е. При наличии двух маршрутов связи между двумя таблицами. Однако есть способы (большинство) из них, особенно если вы ограничиваете разрешенную схему. В любом случае, большинство возможных схем не стоит рассматривать.
Мне просто интересно, есть ли попытки сделать что-то подобное?
(Я видел большинство решений orm для облегчения некоторых запросов)
РЕДАКТИРОВАТЬ: Мне действительно очень нравится sql. Я использовал решения orm и посмотрел на linq. Лучшее, что я видел до сих пор, это SQLalchemy (для python). Однако, насколько я видел, они не предлагают то, что мне нужно.