|
MySQL.RU - Webboard
Вернуться
JOIN по максимальному кол-ву строк (cryptos) 10/04/2010 - 00:53:01
Re: JOIN по максимальному кол-ву строк (bac) 10/04/2010 - 09:16:47
Re: JOIN по максимальному кол-ву строк (cryptos) 10/04/2010 - 13:01:25
> Original message text:
> From: cryptos - 10/04/2010 - 00:53:01
> Subject:JOIN по максимальному кол-ву строк
> -----------------
> Привет, не получается такая штука... есть две таблицы
> market(user, money); поступления денег от пользователей
> group_user(user,group); распределение пользователей по группам
>
> Задача: Показать статистику sum(money) по пользователям внутри определенной группы, в том числе показывать НОЛЬ если пользователь из группы денег не присылал.
>
> Если мы используем запрос
> SELECT user,sum(money) FROM market as t1 RIGHT JOIN group_user as t2 ON t1.user=t2.user;
> то всё ок, отображаются все пользователи, которые есть во второй таблице и к каждому сумма.
> Однако есть дополнительное условие: в первой таблице могут быть пользователи, которые не относятся ни к одной группе из таблицы 2, и соответственно записи по этим пользователям пропадут.
> Вопрос, как учитывать таких пользователей?
> P.S. LEFT JOIN их покажет, но тогда не будут показаны пользователи у которых не было платежей, что не устраивает. а INNER JOIN покажет по самой короткой таблице..
>
> Спасибо
>
From: bac - 10/04/2010 - 09:16:47
Subject:JOIN по максимальному кол-ву строк
-----------------
Значит нужно начать с построения требуемого множества
SELECT market.* FROM market INNER JOIN group_user USING (user)
А потом уже использовать это множество
SELECT user,sum(money)
FROM (
SELECT market.* FROM market INNER JOIN group_user USING (user)
) as t1
RIGHT JOIN
group_user as t2
USING (user);
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
36990
|
|