Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
JOIN нескольких таблиц (allp) 21/10/2009 - 19:22:46
      Re: JOIN нескольких таблиц (bac) 22/10/2009 - 09:09:17

> Original message text:
> From: allp - 21/10/2009 - 19:22:46
> Subject:JOIN нескольких таблиц
> -----------------
> Здравствуйте.
>
> Делаю выборку из таблицы user, затем в первом JOIN'e нахожу рефералов (uset.refId) и их статистику.
> Но при добавлении второго JOIN'a SUM(ref_stats.sum) умножается в несколько раз.
> Нужно чтобы этого не происходило. Нужно проходить по таблице user, искать статистику по рефералам (таблица ref_stats) и общую статистику (stats).
>
> примерный вид таблиц:
>
> table user
> userId
> refId
>
> table ref_stats
> userId
> sum
>
> table stats
> userId
> sum
>
>
> запрос, в сторону которого я копаю:
>
> SELECT u.login, SUM(ref_stats.sum) AS refSum
> FROM user u
>
> LEFT JOIN (
> user uref LEFT JOIN ref_stats ON uref.userId = ref_stats.userId
> ) ON u.userId = uref.refId
> LEFT JOIN stats ON u.userId = stats.userId
>
> WHERE
> WEEK(ref_stats.date, 1) = 42
> GROUP BY u.userId
>
> может помочь?
>


From: bac - 22/10/2009 - 09:09:17
Subject:JOIN нескольких таблиц
-----------------
попробуйте заменить в запросе посмотрите что получается. так ли работает объединение?

SELECT *
FROM user u

LEFT JOIN (
user uref LEFT JOIN ref_stats ON uref.userId = ref_stats.userId
) ON u.userId = uref.refId
LEFT JOIN stats ON u.userId = stats.userId

WHERE
WEEK(ref_stats.date, 1) = 42




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36364



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |