left outer join to pull in most recent record

From: Gary Stainburn <gary(dot)stainburn(at)ringways(dot)co(dot)uk>
To: "pgsql-sql(at)lists(dot)postgresql(dot)org" <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: left outer join to pull in most recent record
Date: 2018-10-09 13:18:01
Message-ID: 201810091418.01620.gary.stainburn@ringways.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I have the following stock list table.

# select * from stock;
s_stock_no | s_regno
------------+---------
N12345 | GPS1
N12346 | TEST1
U123 | GPS1
(3 rows)

This shows two vehicles.
GPS1 was originally a new vehicle which we then sold.
TEST1 is also a new vehicle
GPS1 is sunsequently purchased back from the customer as a part exchange, and
is put on the stock table as a used car.

If I later want to do a search based on the registration number, wishing to
retrieve the most recent record what is the *best* (quickest or least CPU
time depending on your preference) way to do this?

By most recent record, I mean the record with the highest stock number.

I'm looking for a solution to do a straight select where.....
but I am also looking for a solution that can be used in a left join, for
example

select diary.*, stock.*
from diary
left outer join stock on ...........

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rossi, Maria 2018-10-09 17:18:37 pg_dumpall and restore
Previous Message Paul McGarry 2018-10-08 21:34:51 Re: Why the index is not used ?