diff --git a/model/SQLQuery.php b/model/SQLQuery.php index db3e1bfd0..4a3bc757e 100644 --- a/model/SQLQuery.php +++ b/model/SQLQuery.php @@ -467,7 +467,8 @@ class SQLQuery { else if(sizeof($join['filter']) == 1) $filter = $join['filter'][0]; else $filter = "(" . implode(") AND (", $join['filter']) . ")"; - $this->from[$alias] = strtoupper($join['type']) . " JOIN \"{$join['table']}\" AS \"$alias\" ON $filter"; + $aliasClause = ($alias != $join['table']) ? " AS \"$alias\"" : ""; + $this->from[$alias] = strtoupper($join['type']) . " JOIN \"{$join['table']}\"$aliasClause ON $filter"; } } diff --git a/tests/model/SQLQueryTest.php b/tests/model/SQLQueryTest.php index 89e16fcbb..7923555a2 100644 --- a/tests/model/SQLQueryTest.php +++ b/tests/model/SQLQueryTest.php @@ -218,8 +218,8 @@ class SQLQueryTest extends SapphireTest { $query->leftJoin( 'MyLastTable', 'MyOtherTable.ID = MyLastTable.ID' ); $this->assertEquals( 'SELECT * FROM MyTable '. - 'INNER JOIN "MyOtherTable" AS "MyOtherTable" ON MyOtherTable.ID = 2 '. - 'LEFT JOIN "MyLastTable" AS "MyLastTable" ON MyOtherTable.ID = MyLastTable.ID', + 'INNER JOIN "MyOtherTable" ON MyOtherTable.ID = 2 '. + 'LEFT JOIN "MyLastTable" ON MyOtherTable.ID = MyLastTable.ID', $query->sql() );