Tilmann Singer wrote:
* andrew@xxxxxxxxxxxx <andrew@xxxxxxxxxxxx> [20070728 21:05]:
Let's try putting the sort/limit in each piece of the UNION to speed them up separately.
SELECT * FROM (
(SELECT * FROM large_table lt
WHERE lt.user_id = 12345
ORDER BY created_at DESC LIMIT 10) AS q1
UNION
(SELECT * FROM large_table lt
WHERE user_id IN (SELECT contact_id FROM relationships WHERE user_id=12345)
ORDER BY created_at DESC LIMIT 10) AS q2
ORDER BY created_at DESC LIMIT 10;
It's not possible to use ORDER BY or LIMIT within unioned queries.
http://www.postgresql.org/docs/8.2/static/sql-select.html#SQL-UNION
If I'm reading this documentation correctly, it *is* possible, as long as they're inside of a sub-select, as in this case.
Craig
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
message can get through to the mailing list cleanly