How to Perform Two Simple Queries using Select Value from First Query I need to perform a select operation and get the id column's value (single value returned). Using this value, I need to perform two more selects on the same table using UNION ALL (in order to select limit n id &lt; selected.id and limit n id > selected.id

I am currently failing in getting the value from 1st query to perform union all queries. How can I fix it?

SELECT * FROM table WHERE column_b = 'a value' # this query returns ID.
union all  
(select a.* from table as a where id &lt; returned.id
order by id desc limit 5) 
union all  
(select a.* from table as a where id &gt;= returned.id
order by id asc limit 15)
How about using a join in the unioned SELECTs:

(SELECT a.* 
 FROM table AS a
  JOIN table AS t2 ON (a.id &lt; t2.id)
 WHERE t2.column_b = 'a value'
 ORDER BY id DESC LIMIT 5) 
UNION ALL
(SELECT a.*
 FROM table AS a
  JOIN table AS t2 ON (a.id &gt;= t2.id)
 WHERE t2.column_b = 'a value'
 ORDER BY id ASC LIMIT 15)


Note that the order from the parts of UNION ALL might not be preserved in the result.