X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fpq-gateway;a=blobdiff_plain;f=lib%2Fpq%2FGateway%2FTable.php;fp=lib%2Fpq%2FGateway%2FTable.php;h=2789963a35f2ee0ac38620820004a84d0979d35e;hp=e365e3772f836ce19a58bc8f2e7a788b07a4f4ee;hb=3aa333045c0bb93b83e87e190b4ed49333d106f0;hpb=6f6c863aaf2aa48dadb2e91298c1685fc95a68c9 diff --git a/lib/pq/Gateway/Table.php b/lib/pq/Gateway/Table.php index e365e37..2789963 100644 --- a/lib/pq/Gateway/Table.php +++ b/lib/pq/Gateway/Table.php @@ -405,14 +405,26 @@ class Table implements \SplSubject if (!($relation instanceof Table\Reference)) { $relation = static::resolve($relation)->getRelation($this->getName()); } - $query->write("JOIN", $relation->foreignTable)->write("ON"); - foreach ($relation as $key => $ref) { - $query->criteria( - array( - "{$relation->referencedTable}.{$ref}=" => - new QueryExpr("{$relation->foreignTable}.{$key}") - ) - ); + if ($this->getName() === $relation->foreignTable) { + $query->write("JOIN", $relation->referencedTable)->write("ON"); + foreach ($relation as $key => $ref) { + $query->criteria( + array( + "{$relation->referencedTable}.{$ref}=" => + new QueryExpr("{$relation->foreignTable}.{$key}") + ) + ); + } + } else { + $query->write("JOIN", $relation->foreignTable)->write("ON"); + foreach ($relation as $key => $ref) { + $query->criteria( + array( + "{$relation->referencedTable}.{$ref}=" => + new QueryExpr("{$relation->foreignTable}.{$key}") + ) + ); + } } } if ($where) {