SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.06.2009 18:14:40

15828
Участник
Зарегистрирован: 09.06.2009
Сообщений: 2

подсчет данных из разных таблиц

Народ, подскажите пожалуйста, как сделать подсчет строк с определенными условиями из разных таблиц ОДНИМ ЗАПРОСОМ, например:
как заменить следующие запросы, одним

SELECT COUNT(user) FROM table1 WHERE user = '$user'
SELECT COUNT(user) FROM table2 WHERE user = '$user'
SELECT COUNT(user) FROM table3 WHERE user = '$user'
.................................
SELECT COUNT(user) FROM table50 WHERE user = '$user'


Заранее благодарю!!!!!!!!

Неактивен

 

#2 10.06.2009 01:48:26

Diter
Участник
Зарегистрирован: 21.03.2009
Сообщений: 5

Re: подсчет данных из разных таблиц

В голову пришла такая конструкция:

SELECT 1 as tabNum, COUNT(user) FROM table1 WHERE user = '$user'
UNION
SELECT 2 as tabNum, COUNT(user) FROM table2 WHERE user = '$user'
UNION
...
UNION
SELECT 50 as tabNum, COUNT(user) FROM table50 WHERE user = '$user'

Неактивен

 

#3 10.06.2009 11:21:00

15828
Участник
Зарегистрирован: 09.06.2009
Сообщений: 2

Re: подсчет данных из разных таблиц

цель этого запроса узнать, по сколько записей пользователь оставил в каждой таблице (таблицы это определенные сервисы моего сайта)

А вообще нужно ли лепить все в один запрос.
Или все же количество запросов влияет на производительность?

Неактивен

 

#4 10.06.2009 14:14:03

Magz
Гуру
Откуда: Москва
Зарегистрирован: 18.09.2007
Сообщений: 112

Re: подсчет данных из разных таблиц

Вряд ли сервисы растут со скоростью грибов после дождя. Поэтому я бы сделал таблицу, в которой был бы user_id и колонки, которые соответствовали сервисам. При изменении данных в конкретном сервисе Вы делаете дополнительный UPDATE нужной колонки в этой таблице. Общее быстродействие системы будет в разы больше, нежели любые варианты с несколькими SELECT COUNT()...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson