Как посчитать строки из нескольких таблиц в одном запросе sql [закрыто]

allocSize и incrementBy - совершенно разные вещи.

Спящий режим, конечно, использует вашу последовательность, созданную в БД, но в зависимости от allocSize вы можете найти пробел в сгенерированном значении.

Например, Предположим, что текущее значение последовательности равно 5, увеличивается на 1 в db и присваивает значение по умолчанию 50.

Теперь вы хотите сохранить коллекцию из 3 элементов через спящий режим, тогда Hibernate назначит сгенерированный идентификатор 250, 251, 252

Это для целей оптимизации. Hibernate не нужно возвращаться к db и получать следующее добавочное значение.

Если вы не хотите, чтобы эта настройка allocationSize = 1, как уже было сказано, выполнит цель

3
задан eduncle 16 January 2019 в 06:33
поделиться

1 ответ

Вы можете использовать UNION

SELECT COUNT(*) FROM table1
UNION
SELECT COUNT(*) FROM table1 where condition;
UNION
SELECT COUNT(*) FROM table2;
UNION
SELECT COUNT(*) FROM table3 where condition;

. Вы можете добавить дополнительное поле, чтобы найти, какую строку вы получите, следуя запросу

SELECT "COND-1" AS TITLE, COUNT(*) FROM table1
UNION
SELECT "COND-2" AS TITLE, COUNT(*) FROM table1 where condition;
UNION
SELECT "COND-3" AS TITLE, COUNT(*) FROM table2;
UNION
SELECT "COND-4" AS TITLE, COUNT(*) FROM table3 where condition;
.
0
ответ дан Uttam Kumar Roy 16 January 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: