Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2008, 21:23   #1
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию join

цель - получить три строки из первой таблицы (news.*), среднее значение поля для каждой из трех строк из второй таблицы (avg(rate.score)) и количество строк для каждой из трех строк из третьей таблицы (count(news_comment.*))

запрос я написал такой:
Цитата:
SELECT avg(radaa.rate.score) as avg_score, count( news_comment.news_comment_id ) AS cc, news.news_id, news.title, news.short, news.pic, unix_timestamp( news.add_date ) add_date
FROM news
LEFT JOIN news_comment ON news_comment.news_id = news.news_id
AND news_comment.type = 'news'
LEFT JOIN rate ON rate.id = news.news_id
AND rate.type = 'news'
WHERE news.news_group_id =3
GROUP BY news.news_id
ORDER BY news.add_date DESC , news.impotance
LIMIT 3
но news_comment присоединяется не к каждой из трех строк таблицы news, а к каждой строке из rate, поэтому count щитается не правильно (выдает в n раз большее значение чем нужно, где n - количество строк в rate)

если меня хоть кто-нибудь понял - посоветуйте пожалуйста как исправить запрос (помоему я не знаю как независимо друг от друга присоединять сразу две таблицы к одной)
свободен...

Последний раз редактировалось wall66; 19.10.2008 в 21:26.
wall66 вне форума Ответить с цитированием
Старый 10.11.2008, 13:58   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

понятно что ничего не понятно, а join лучше делать в where
slips вне форума Ответить с цитированием
Старый 10.11.2008, 16:44   #3
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от slips Посмотреть сообщение
понятно что ничего не понятно, а join лучше делать в where
молодец, возьми с полки пряник, а тема уже давным-давно здесь
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается запрос с inner join :mad: Только_Учусь SQL, базы данных 16 21.07.2008 09:40