diff --git a/include/class.orm.php b/include/class.orm.php
index 3508d9273ed70d1f9cf00908c52b981bc5dcce66..8d32361b8d43272f3cb78d4ef5697ea2106807e4 100644
--- a/include/class.orm.php
+++ b/include/class.orm.php
@@ -33,6 +33,7 @@ class ModelMeta implements ArrayAccess {
         'table' => false,
         'defer' => array(),
         'select_related' => array(),
+        'view' => false,
     );
     var $model;
 
@@ -1605,7 +1606,11 @@ class MySqlCompiler extends SqlCompiler {
         if ($extra instanceof Q) {
             $constraints[] = $this->compileQ($extra, $model, self::SLOT_JOINS);
         }
-        return $join.$this->quote($rmodel::$meta['table'])
+        // Support inline views
+        $table = ($rmodel::$meta['view'])
+            ? $rmodel::getQuery($this)
+            : $this->quote($rmodel::$meta['table']);
+        return $join.$table
             .' '.$alias.' ON ('.implode(' AND ', $constraints).')';
     }