Если вы выполняете левое соединение и предложение where находится в левой соединяемой таблице, вам нужно переместить его в часть соединения (как показано ниже), потому что если в предложении where есть левая таблица соединения, это логически превращает это во внутреннее соединение
select Id,
Title,
Category,
(
case
when r.DateModified is null then l.DateUpdated
when r.DateModified > l.DateUpdated then r.DateModified else l.DateUpdated
end
) as DateUpdated
from leftT l
left outer join rightT r l.Id = r.EntityId
-- though not sure what table this is from so maybe add table identifier
AND DateUpdated >= 'from-date'
and DateUpdated < 'to-date'
Mason является 'M' за исключением того, чтобы быть MVC (Образцовый Контроллер Представления) платформа. Это обеспечивает обширные функции (View) рендеринга, который является, почему люди думают о Mason, как являющемся языком шаблонной обработки. Однако это также обеспечивает довольно много механизмов отправки (особенно в форме dhandlers), и механизмы управления (которые соответствуют естественно автообработчикам).
Несколько лет назад я записал учебное руководство онлайн (в Mason) для показа некоторых из этих функций. Это оптимизировано для полноэкранного дисплея и нуждается во включенном JavaScript.
То, что Масон не дает Вам, является уровнем абстракции базы данных, таким образом, необходимо принести собственную Модель.
Насколько я знаю amazon.com записан в Mason, наряду со многими другими сайтами.
Если бы Вы любите работать с Mason, но требуется иметь Модель, больше игрушек и пони, то можно рассмотреть рассмотрение Jifty как платформу веб-приложений.
Система шаблонной обработки была бы чем-то как HTML::Template
, то есть, модуль, который только делает шаблонную обработку.
Я чувствую это Mason
делает больше, это имеет так или иначе механизм маршрутизации, это обеспечивает обработку аргумента хотя %ARGS
, инициализации через %INIT
.
Это также предоставляет интерфейсы mod_perl
, CGI
...
Теперь, это не говорит с базой данных, как будто Вы хотите, чтобы очевидный способ сделал это, необходимо будет использовать Class::DBI
, DBIx::Perlish
или одна из другой сотни модулей жемчуга, который действительно возражает отображению, или безотносительно...
Не может ответить на вопрос к ли HTML:: Масон или не является платформой, не смотря на него, но я всегда доволен следующим определением....
"платформа называет Вашу программу, тогда как Ваша программа называет библиотеку"
Смотря на Встроенный Perl в HTML с представлением Mason его конкуренции, я сказал бы, что это - шаблонный язык. Иначе Катализатор и майское дерево были бы в списке. Кроме того, я думаю, что считал где-нибудь, что можно использовать Mason в качестве части Представления в приложении Катализатора.
Я предполагаю I, видят, где можно использовать его как платформа, но это, кажется, больше завершенное, если Вы просматриваете его как шаблонный язык.
Это не Образцовый Тип контроллера представления платформы, это, вероятно, ближе к PHP, чем Ruby on Rails, например (и столь же плохо от того, что я видел его).
Зависит Вашего определения платформы.
Можно применить платформу имени к любой библиотеке, если она делает больше чем одну вещь.
Один только Mason не является платформой, это - просто шаблонная система, НО с некоторыми очень замечательными функциями. Это имеет свою собственную структуру, и можно встроить код жемчуга очень легко в нем, также это имеет поддержку кэша. Я видел людей, которые используют одного только Mason для разработки крупного приложения, но я предполагаю, что она работает лучше в платформе MVC.
Береги себя!