我目前正在开发一个报表生成servlet,它汇总了几个表中的信息并生成报表。除了返回结果行之外,我还将它们存储到一个报表表中,以便以后不需要重新生成,并且如果它们绘制的表被清除,它们也会持久存在。为此,我有一个形如下面的语句(注:x是外部生成的,在这个语句中实际上是一个常数):
INSERT INTO reports
(report_id, col_a, col_b, col_c)
SELECT x as report_id, foo.a, bar.b, bar.c
FROM foo, bar
这个代码可以正常运行,但之后我需要进行第二个查询来实际返回结果行,例如:
SELECT col_a, col_b, col_c
FROM reports
WHERE report_id = x
这个方法运行良好,并且因为只涉及单个表,所以不应该很耗费资源,但似乎应该能够直接返回插入结果而避免第二个查询。是否有一些我没有找到的语法可以实现这个功能?(需要注意的是,我在数据库方面还比较新手,如果正确的答案是运行第二个查询,因为只稍微慢一点,那就运行第二个查询吧)