powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение результатов агрегатных выборок
16 сообщений из 16, страница 1 из 1
Объединение результатов агрегатных выборок
    #33125800
Patriot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вопрос в следующем :
Есть две таблицы с абсолютно разной структурой,
как получить количество записей этих двух таблиц попрусту говоря оъденить эти два запроса :

Код: plaintext
1.
Select count(*) FROM A

Код: plaintext
1.
Select count(*) FROM B

Заранее спасибо !
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126139
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно так:
Код: plaintext
1.
2.
3.
select a.a_count+b.b_count total
from (select count(*) a_count from a_1) a,
	(select count(*) b_count from b_1) b
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126143
Patriot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BerkutВозможно так:
Код: plaintext
1.
2.
3.
select a.a_count+b.b_count total
from (select count(*) a_count from a_1) a,
	(select count(*) b_count from b_1) b


Спасибо !
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126162
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или (если версия>=4.1)
Код: plaintext
SELECT (SELECT COUNT(*) FROM A)+(SELECT COUNT(*) FROM B)
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126171
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. также SHOW TABLE STATUS
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126178
Patriot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия 4.0.18-standard ... Ни тот ни другой запрос не робит к сожалению ...

P.S. Не для себя спрашиваю ... сам с FireBird-ом работаю поэтому не знаю что там поддерживается ...
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126190
Nir0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это надо мне. запросы в самом деле не пашут. SHOW TABLE STATUS - вещь хорошая, пока нет никаких дополнительных условий...
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126194
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PatriotВерсия 4.0.18-standard ... Ни тот ни другой запрос не робит к сожалению ...


Тогда одним числом никак.
М.б. устроит UNION.
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126266
Nir0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Johnmen PatriotВерсия 4.0.18-standard ... Ни тот ни другой запрос не робит к сожалению ...


Тогда одним числом никак.
М.б. устроит UNION.
да не помру... буду юзать атомарные запросы. к тому-же mysql очень плохо держит кросс-табличные выборки... даже замечал потери в скорости при переходе на них. интересно просто стало, возможно ли вообще такое реализовать?
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126301
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень плохо держит кросстабличные запросы?? нуканукапоподробнее с этого места..
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126477
Nir0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ХренОчень плохо держит кросстабличные запросы?? нуканукапоподробнее с этого места..у меня было две таблички. в одной хранились фотографии (id, имя пользователя и т.д.), в другой комментарии к фотам. при выводе фоток я выводил и количество комментариев делая в цикле:
$r=mysql_query('select * from photos where ok=1 limit 0,10');
for ($i=0;$i<mysql_num_rows($r);$i++)
{
$row=mysql_fetch_array($r);
$r1=sql('select count(*) from votes where idp='.$row[id]);
...вывод фотки...
}
потом, когда записей стало много, скорость генерации страницы упала до 2 десятых секунды... естесственно, я попытался найти решение, и сделал кросс-табличную выборку. добавилась еще пара сотых секунды :(
админ сервера сказал мне, что mysql никогда нормально джоины не держала... так-же как апдэйты и инсерты... здесь постгре выигрывает в скорости, в отличие от атомарных селектов, где майскуля шустрее... в общем, админ мне посоветовал записать эти данные в photos, что я и сделал... скорость увеличилась раз в 10 :) вот такая история. а еще я читал в майскулёвом мануале, что джоины действительно медленны...
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33126698
trijin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понял?
Вот этот скрипт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$r=mysql_query('select * from photos where ok=1 limit 0,10');
for ($i= 0 ;$i<mysql_num_rows($r);$i++)
{
$row=mysql_fetch_array($r);
$r1=sql('select count(*) from votes where idp='.$row[id]);
...вывод фотки...
}
работает быстрее чем?
Код: plaintext
1.
2.
3.
4.
5.
6.
$r=mysql_query("SELECT p.*, count(v.id) as cnt  
FROM photos p LEFT OUTER JOIN votes v ON p.id=v.idp 
WHERE p.ok=1 GROUP by p.id limit 0,10");
while($row=mysql_fetch_array($r));{
...вывод фотки...
}
???
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33128046
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nir0потом, когда записей стало много, скорость генерации страницы упала до 2 десятых секунды...
Индексы строить не пробовали?

админ сервера сказал мне, что mysql никогда нормально джоины не держала...
При правильном проектировании все работает нормально.

в общем, админ мне посоветовал записать эти данные в photos, что я и сделал... скорость увеличилась раз в 10
Логично - селект по одной таблице, без дергания по одной записи и без JOIN по неиндексированным полях(?).
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33128673
Nir0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trijinЯ правильно понял?
Вот этот скрипт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$r=mysql_query('select * from photos where ok=1 limit 0,10');
for ($i= 0 ;$i<mysql_num_rows($r);$i++)
{
$row=mysql_fetch_array($r);
$r1=sql('select count(*) from votes where idp='.$row[id]);
...вывод фотки...
}
работает быстрее чем?
Код: plaintext
1.
2.
3.
4.
5.
6.
$r=mysql_query("SELECT p.*, count(v.id) as cnt  
FROM photos p LEFT OUTER JOIN votes v ON p.id=v.idp 
WHERE p.ok=1 GROUP by p.id limit 0,10");
while($row=mysql_fetch_array($r));{
...вывод фотки...
}
???большой разницы я между ними не увидел... скорость замерял раз по пять, так что возможность погрешности довольно мала...
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33128686
Nir0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Welly Nir0потом, когда записей стало много, скорость генерации страницы упала до 2 десятых секунды...
Индексы строить не пробовали?

админ сервера сказал мне, что mysql никогда нормально джоины не держала...
При правильном проектировании все работает нормально.

в общем, админ мне посоветовал записать эти данные в photos, что я и сделал... скорость увеличилась раз в 10
Логично - селект по одной таблице, без дергания по одной записи и без JOIN по неиндексированным полях(?).индексировать пробовал... скорость увеличилась, что не могло не радовать, но очень мало. на 5-10%... оптимальным оказался именно последний вариант.
...
Рейтинг: 0 / 0
Объединение результатов агрегатных выборок
    #33128691
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что explain то показывал?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Объединение результатов агрегатных выборок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]