Подсчет выборки в нескольких таблицах

PuMi

Новичок
Подсчет выборки в нескольких таблицах

Подскажите, как данные запросы сделать по умному.

$z1 = mysql_query("SELECT count(*) FROM $table1 Where id='$_GET[id]'");
$r1= mysql_result($z1,0);

$z2 = mysql_query("SELECT count(*) FROM $table2 Where id='$_GET[id]'");
$r2= mysql_result($z2,0);

$z3 = mysql_query("SELECT count(*) FROM $table3 Where id='$_GET[id]'");
$r3= mysql_result($z3,0);

$count=$r1+$r2+$r3;

If($count!="0") print "ok";
 

Gas

может по одной?
подзапросами: select (select count(*)...)+(select count(*)...)
можно ещё и union + group by, но это слишком вычурно в данном случае.
 

PuMi

Новичок
Спасибо.

-~{}~ 04.11.08 15:57:

А этого будет быстрее работь и считаться будет за 1 запрос?
 

Gas

может по одной?
так-же (если нет больших сетевых задержек между сервером с php и db-сервером).
 

Фанат

oncle terrible
Команда форума
по-умному будет сделать одну таблицу, а не три.
 

zerkms

TDD infected
Команда форума
AmdY
из пушки по воробьям :)

-~{}~ 06.11.08 15:51:

ну и продолжая "моду" на show table status:

[sql]
SHOW TABLE STATUS WHERE `name` IN ('table1', 'table2');
[/sql]

и, конечно же, INFORMATION_SCHEMA.TABLES

;-)
 

AmdY

Пью пиво
Команда форума
:) нужно следить за модой, а то я давненько не заходил в темы о бд
PuMi
сам догадаешься '$_GET[id]' ?
 

gebo

Новичок
подскажите пожалуста, как объединить эти запросы в один.

list($filesCount) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(name) AS filesCount FROM ".$prefix."_files WHERE uid='$user_id1'"));
list($newCount) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(name) AS newCount FROM ".$prefix."_stories WHERE uid='$user_id1'"));
list($commCount) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(name) AS commCount FROM ".$prefix."_comment WHERE uid='$user_id1'"));
list($postsCount) = $db->sql_fetchrow($db->sql_query("SELECT COUNT(user) AS postsCount FROM ".$prefix."_forum_messages WHERE user='$user_name1'"));
 
Сверху