Postgres: left join avec order by et limit 1

J'ai la situation:

Table1 has a list of companies.
Table2 has a list of addresses.
Table3 is a N relationship of Table1 and Table2, with fields 'begin' and 'end'.

Parce que les entreprises peuvent se déplacer au fil du temps, une JOINTURE GAUCHE parmi eux, plusieurs enregistrements pour chaque entreprise.

begin et end les champs ne sont jamais NULLES. La solution pour trouver l'adresse la plus récente est l'utilisation d'un ORDER BY being DESC, et à supprimer les anciens adresses est un LIMIT 1.

Qui fonctionne bien si la requête peut porter seulement 1 compagnie. Mais j'ai besoin d'une requête qui rassemble tous Table1 dossiers, rejoint avec leur Table2 adresses. Par conséquent, la suppression des données obsolètes doit être fait (à ma connaissance) à GAUCHE de la JOINTURE SUR la clause.

Une idée de comment je peux construire la clause pour ne pas créer dupliqué Table1 entreprises et apporter de la dernière adresse?

OriginalL'auteur Hikari | 2014-02-17