[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите объединить запросы SELECT COUNT
GET
	"SELECT  COUNT(*) FROM `".$tab1."`  WHERE `id1`='".(int)$_SESSION['id']."' UNION ALL
SELECT COUNT(*) FROM `"
.$tab2."` WHERE `id2`='".(int)$_SESSION['id']."'");


нужно получить общее число елементов



Спустя 8 минут, 37 секунд (19.01.2012 - 04:17) inpost написал(а):
2 отдельных запроса, потом плюсуй! зачем городить :)
или:
SELECT COUNT(*) FROM (
select `id` ... union select `id`
)

Спустя 4 минуты, 51 секунда (19.01.2012 - 04:22) GET написал(а):
inpost

Цитата
2 отдельных запроса, потом плюсуй! зачем городить smile.gif


а так не быстрее? Ну объединяя?

Спустя 5 минут, 55 секунд (19.01.2012 - 04:28) inpost написал(а):
A.B.C.
Через left join - 100% будет медленнее, про inner join не знаю. Тестировать надо!

Спустя 7 минут, 51 секунда (19.01.2012 - 04:36) GET написал(а):
inpost

Еще спросить можно :)

Вот если такой запрос похожий:

mysql_query("SELECT * FROM `".$tab1."` WHERE `id1`='".(int)$_SESSION['id']."' UNION ALL
SELECT * FROM `"
.$tab2."` WHERE `id2`='".(int)$_SESSION['id']."' ORDER by `st`,`date` DESC");


из результатов составляются ссылки, есть ли способ идентифицировать ссылку из какой она получилось таблицы из tab1 или tab2? Ну в запросе фальшивое поле что-ли указать? :)

Не хочется пустое поле - идентификатор в таблицу вводить типа...t1 и t2

Спустя 1 минута, 31 секунда (19.01.2012 - 04:38) GET написал(а):
Разделить их не могу так как они должны быть смешаны на экране по дате отсортированы и по полю st...можно конечно в массив загнать и потом смешать, но это все ресурсы

Спустя 2 минуты, 11 секунд (19.01.2012 - 04:40) inpost написал(а):
SELECT *,'table1' AS `table` FROM ...
UNION
SELECT
*,'table2' AS `table` FROM ...

Спустя 1 минута, 37 секунд (19.01.2012 - 04:41) GET написал(а):
inpost

Точно!....Спасибо!

Спустя 1 месяц, 16 дней, 8 часов, 56 минут, 52 секунды (5.03.2012 - 13:38) GET написал(а):
Блин, решил поднять тему из глубины т.к. опять встретился с тем же.

Как объединить запросы эти? Уже все варианты попробывал ошибку не показывает, но и не плюсует.

Эта часть будет выполнятся постоянно (количество новых сообщений и полное) т.е. с каждой перезагрузкой страницы поэтому хотелось бы побыстрее.

Спустя 35 минут, 34 секунды (5.03.2012 - 14:14) GET написал(а):
Вопрос снят:

"SELECT  COUNT(*) as c1 FROM `".$tab1."`  WHERE `id1`='".(int)$_SESSION['id']."' UNION ALL
SELECT COUNT(*) as c2 FROM `"
.$tab2."` WHERE `id2`='".(int)$_SESSION['id']."'");
// ...

$row['c1'] + $row['c2'];

Спустя 13 минут, 45 секунд (5.03.2012 - 14:28) GET написал(а):
inpost, прав простые запросы быстрее


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.