В настоящее время я работаю над сервлетом генерации отчетов, который объединяет информацию из нескольких таблиц и генерирует отчет. В дополнение к возвращению полученных строк я также сохраняю их в таблицу отчетов, чтобы их не нужно было перегенерировать позже, и будет сохраняться, если таблицы, из которых они взяты, стерты. Для этого у меня есть утверждение вида (примечание: 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
Это прекрасно работает, и поскольку оно включает только одну таблицу, не должно быть дорогим, но, похоже, я должен иметь возможность напрямую возвращать результаты вставки, избегая второго запроса. Есть ли какой-то синтаксис для этого, который я не смог найти? (Должен заметить, я довольно новичок в работе с БД, поэтому, если правильный ответ - просто запустить второй запрос, так как он немного медленнее, так и будет)