Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите объединить запросы SELECT COUNT
Форумы портала PHP.SU » » Работа с СУБД » Помогите объединить запросы SELECT COUNT

Страниц (1): [1]
 

1. A.B.C. - 05 Марта, 2012 - 12:32:49 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. "SELECT  COUNT(*) FROM `".$tab1."`  WHERE `id1`='".(int)$_SESSION['id']."' UNION ALL
  2.          SELECT  COUNT(*) FROM `".$tab2."` WHERE `id2`='".(int)$_SESSION['id']."'");
  3.  


нужно получить общее число елементов
2. OrmaJever - 05 Марта, 2012 - 13:07:40 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. "SELECT  COUNT(*) as c1 FROM `".$tab1."`  WHERE `id1`='".(int)$_SESSION['id']."' UNION ALL
  2.         SELECT  COUNT(*) as c2 FROM `".$tab2."` WHERE `id2`='".(int)$_SESSION['id']."'");
  3. // ...
  4.  
  5. $row['c1'] + $row['c2'];
  6.  
3. A.B.C. - 05 Марта, 2012 - 13:13:41 - перейти к сообщению
OrmaJever

Спасибо Вам большое.
(Добавление)
OrmaJever
А как думаете такой запрос быстрее будет чем два простых?
4. OrmaJever - 05 Марта, 2012 - 13:24:08 - перейти к сообщению
Даже незнаю, вроде бы union Работает медленее, хотя могу и ошибатся. Вобще можно такой запрос попробовать
PHP:
скопировать код в буфер обмена
  1. "SELECT  SUM(COUNT(`a`.`id1`), COUNT(`b`.`id2`)) as `sum` FROM `{$tab1}` as `a` LEFT JOIN `{$tab2}` as `b` ON `a`.`id1` = `b`.`id2` WHERE `id1`='".(int)$_SESSION['id']."'"
5. A.B.C. - 05 Марта, 2012 - 13:26:54 - перейти к сообщению
Спасибо еще раз! Потестирую сейчас.

 

Powered by ExBB FM 1.0 RC1