Am 08.02.2016 um 21:17 schrieb Vitaly Burovoy: > On 2/8/16, Johannes <jotpe@xxxxxxxxx> wrote: >> Am 08.02.2016 um 20:15 schrieb David G. Johnston: >>> On Mon, Feb 8, 2016 at 12:05 PM, Johannes <jotpe@xxxxxxxxx> wrote: >>> >>>> Hi, >>>> >>>> is there a best practice to share data between two select statements? >>>> >>>> Imaging following situation: I want to receive two result sets from two >>>> tables, referring to a specific id from table t0 AND I try not to query >>>> for that specific id a second time. >>>> >>>> Table t0 returns 1 row and table t1 returns multiple rows. >>>> >>>> begin; >>>> select id, col1, col2, ... from t0 where id = (select max(id) from t0 >>>> where col1 = value1 and col2 = value2 and ...); >>>> select col1 from t1 where t0_id = (select max(id) from t0 where col1 = >>>> value1 and col2 = value2 and ...); >>>> commit; >>> >>> >>> Please confirm: >>> >>> You want the result of "SELECT max(id) FROM t0" to be used in the >>> second >>> query without having to recompute it? >> >> Yes. >> >>> What client are you using to execute these statements? >> >> JDBC. I execute both statements at once and iterate through the resultsets. >> >> Johannes > > Hmm. Could you clarify why you don't want to pass id from the first > query to the second one: > > select col1 from t1 where t0_id = value_id_from_the_first_query > Of course I could do that, but in that case I would not ask. I thougt there could be a better solution to execute all statements at once. Saving roundtrips, increase speed, a more sophistacted solution, learn something new... Johannes
Attachment:
signature.asc
Description: OpenPGP digital signature