Здравствуйте, Sinclair, Вы писали:
_>>Зачем врать то? ) Появилось оно не в конце 2000-ых, а вполне себе в 2012, т.е. через несколько лет после появления в стандарте. И через десятилетие после того, как этим спокойно работали пользователи нормальных СУБД.
S>Судя по всему, под "нормальными" СУБД вы имеете в виду MySQL. Это в очередной раз показывает, что рассуждать на эту тему вам рановато.
Почему обязательно MySQL? ) Там и PostgreSQL и ещё куча менее известных РСУБД.
S>Но это неважно, потому что мы живём не в мире "нормальных" СУБД, а в реальном мире. Где нет единой СУБД на все случаи жизни, где диалекты отличаются, и даже качество поддержки одного и того же ANSI SQL существенно различно. Тот же MySQL, который вам так нравится за лояльный синтаксис, имел в те давние годы привычку тупо падать на мало-мальски сложных подзапросах.
S>Вот например:http://stackoverflow.com/questions/2298497/mysql-left-join-subquery-fail
S>Кроме того, над его оптимизатором не смеялся только ленивый: http://www.xaprb.com/blog/2006/04/30/how-to-optimize-subqueries-and-joins-in-mysql/
Кстати, насчёт быстродействия mysql не всё так однозначно, т.к. на простых запросах она при этом же существенно обходила другие СУБД. ) Недаром фейсбук построил на их базе своё подобие nosql. )))
S>Это означает, что приложению лучше бы приготовиться к тому, что надо оптимизировать запросы самостоятельно. И для тех СУБД, которые лучше работают с subquery, использовать subquery, а для тех, кто хорошо оптимизирует join, использовать join. И вот linq предлагает такой способ. А sqlpp — это всего лишь низкоуровневая проверялка синтаксиса для SQL в C++.
Насчёт sqlpp сказано всё верно. А вот насчёт Linq я вижу новое повторение того же мифа, который тут уже неоднократно озвучивали, но при этом не смогли привести ни единого (!) примера для подтверждения.