Re: Join tables by nearest date?

From: Sam Mason <sam(at)samason(dot)me(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Join tables by nearest date?
Date: 2009-07-28 06:49:33
Message-ID: 20090728064933.GX5407@samason.me.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Jul 27, 2009 at 10:51:00PM -0700, Nick wrote:
> Is it possible to join two tables by the nearest date? For example how
> could I find out where the user was on their birthday?

DISTINCT ON[1] is normally the easiest way:

SELECT DISTINCT ON (u.id) u.id, l.id, l.created
FROM users u, users_locations l
WHERE u.id = l.user_id
AND u.birthday <= l.created
ORDER BY u.id, l.created

Untested, but hopefully gives enough hints about where to look!

--
Sam http://samason.me.uk/

[1] http://www.postgresql.org/docs/current/static/sql-select.html#SQL-DISTINCT

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Albe Laurenz 2009-07-28 07:22:49 Re: C Function Question
Previous Message A. Kretschmer 2009-07-28 06:42:25 Re: Join tables by nearest date?