You need to join the execution and resource table to be able to get the results you want. The where clause specifies which rows of the cross-product you want returned.
select r.name, e.name, e.release from execution e, resource r where r.status like 'Busy (%)' and substr(r.status,7,5) = e.run_id; or, if you want to use some syntactic sugar to separate the join condition from the filter. select r.name, e.name, e.release from execution e join resource r on substr(r.status,7,5) = e.run_id where r.status like 'Busy (%)' Overloading the status field in the resource table to contain two data items is bad design. You should have a separate status and run_id columns in this table. > I'm doing a select like this: > select e.name, e.release from execution as e where run_id > in (select substr(status,7,5) from resource where status like "Busy (%"); > > I want to get to get a column from each row of the subselect (from > resource) to match each result row. > > > resource table: > name status > serverA Busy (28610) > serverB Busy (28648) > > execution table: > run_id release name > 28610 rel1 run_name1 > 28648 rel2 run_name2 > > The query returns: > run_name1 rel1 > run_name2 rel2 > > I want: > serverA run_name1 rel1 > serverB run_name2 rel2 > > > I can do a query for each row returned by my subselect but I'm hoping to > do it in one SQL statement.