Hi all
I want to provide a list of up to 20 online users on our network of football forums, but would like to list those live on the current team first, before "filling" any remainder with those online using a different team. I couldn't see any way of getting it all into one select (which in English 'speak' would be like "order by team 380, then get the rest" I suppose?), and saw only the UNION function as the possible solution. All I'm after, if possible, is to know if I'm using the most efficient method of retrieving the data, and also whether putting the extra "LIMIT 20" outside the UNION would indeed pick up the first 20 records only, even though there's a potential for 40. (SELECT user_id, username, last_login FROM users WHERE unix_timestamp(last_access) > unix_timestamp()-1440 AND user_id <> '9' AND last_team = '380' ORDER BY last_login LIMIT 20) UNION (SELECT user_id, username, last_login FROM users WHERE unix_timestamp(last_access) > unix_timestamp()-1440 AND last_team <> '380' ORDER BY last_login LIMIT 20) LIMIT 20 Incidentally, the "user_id <> '25'" is only there to prevent display of the name of the current online user in the list. Many thanks as always Gary