From: | Masaru Sugawara <rk73(at)sea(dot)plala(dot)or(dot)jp> |
---|---|
To: | dan(at)langille(dot)org |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: using LIMIT only on primary table |
Date: | 2002-03-03 06:00:01 |
Message-ID: | 20020303141057.614C.RK73@sea.plala.or.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice pgsql-sql |
On Sat, 2 Mar 2002 17:35:31 -0500
"Dan Langille" <dan(at)langille(dot)org> wrote:
> If I want the last 100 orders:
>
> SELECT * FROM orders LIMIT 100;
>
> If I want all the items on the last 100 orders, I'd start like this:
>
> SELECT *
> from orders, order_items
> where order_items.order_id = orders.id
> LIMIT 100
>
> But that will only give me the last 100 items, not 100 orders.
>
> What I really want is
>
> SELECT *
> from orders, order_items
> where order_items.order_id = orders.id
> and exists
> (SELECT * from orders order by ID DESC limit 100);
This probably gives you all the items on the last 100 orders.
select *
from (select * from orders order by ID desc limit 10) as o
inner join order_items as oi
on (oi.order_id = o.order_id)
;
>
> But that gives me all orders, not just the first 100.
>
> Adding a LIMIT 100 to the above doesn't work either. It equates to the
> first example.
Regards,
Masaru Sugawara
From | Date | Subject | |
---|---|---|---|
Next Message | rob | 2002-03-04 02:17:12 | PL/pgSQL syntax documentation |
Previous Message | Anthony Estevez | 2002-03-03 05:21:58 | Formatting |
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2002-03-03 07:50:03 | Re: Index doesn't appear to be working. |
Previous Message | John Oakes | 2002-03-03 00:28:23 | Index doesn't appear to be working. |