You can solve this in two ways:
1) Use something like a database link. There is limited support in MySQL (note: I've hardly ever used MySQL) See Oracle Database Link - MySQL Equivalent?. This way, you move the problem to the database level.
2) Depending on the actual problem (read: the length of the "select oid FROM table2 where condition" results, you could use either a BIRT data cube or
3) Use two DataSets and a layout structure list-table like this:
The two DataSets need different DataSources.
- DataSet "T2_oids" with a query "select oid from table2 where condition".
- DataSet "T1_object" with a single parameter param_oid and a query "select * from table1 where oid = ?".
Layout structure:
* Outer ListItem "T2_oids" bound to DataSet "T2_oids"
* Inner TableItem or ListItem "T1_object" bound to DataSet "T1_object" with the parameter bound to row["oid"] (or row["OID"], use the list box). This item must be placed inside the T2_oids detail section.
Since T1_object will return a single row, you can even use a GridItem instead of a TableItem or ListItem.