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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

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

есть три таблицы: новости, оценки и комментарии

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

я дошел до такого запроса:
Цитата:
SELECT news.title, avg(rate.score) as score, count(comments.comment_id) as comments
FROM news
LEFT JOIN rate ON rate.news_id=news.news_id
LEFT JOIN comments ON comments.news_id=news.news_id
GROUP BY news.news_id
но данные он выводит не верные, а именно выдает количество комментариев в несколько раз большее (во столько, сколько строк в таблице оценок для новости), например если у новости 4 оценки и 3 комментария он выдает количество комментов равное 12 (нужно 3)

так вот, каким образом нужно переписать запрос чтобы выводились верные значения ?
свободен...
wall66 вне форума Ответить с цитированием
Старый 23.10.2008, 14:48   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

а вложенный запрос не подойдёт?
SELECT id, (SELECT count( id2) FROM u2 WHERE u2.val = u1.val) AS countid FROM u1 WHERE 1
[/CODE]
Стрелок-охотник

Последний раз редактировалось mv28jam; 23.10.2008 в 14:54. Причина: -
mv28jam вне форума Ответить с цитированием
Старый 23.10.2008, 15:00   #3
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
а вложенный запрос не подойдёт?
SELECT id, (SELECT count( id2) FROM u2 WHERE u2.val = u1.val) AS countid FROM u1 WHERE 1
[/CODE]
подойдет, спасибо

но всеже интересен способ без вложенности
свободен...
wall66 вне форума Ответить с цитированием
Старый 26.10.2008, 22:25   #4
drRobert
Пользователь
 
Аватар для drRobert
 
Регистрация: 07.08.2008
Сообщений: 33
По умолчанию

Ой, подскажите пожалуйста, почему не пашет
PHP код:
$result mysql_query("DELETE * FROM `$maildb`.`in`"); 
Гранты на таблицу есть вроде - запрос-дроп срабатывает, так же как и запрос-выборка.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..."
(с) Б.Г.
drRobert вне форума Ответить с цитированием
Старый 27.10.2008, 09:28   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Ваш запрос подменяет запрос TRUNCATE TABLE - который предназначен для очищения таблицы, а delete предназначен для других действий...
Стрелок-охотник

Последний раз редактировалось mv28jam; 27.10.2008 в 10:16. Причина: не так выразился
mv28jam вне форума Ответить с цитированием
Старый 03.11.2008, 18:31   #6
drRobert
Пользователь
 
Аватар для drRobert
 
Регистрация: 07.08.2008
Сообщений: 33
По умолчанию

Йа .....йоп! Звезда лишняя. Delete удаляет строки, а не столбцы

А не подскажете, как с кодировкой работать? Кириллица, возвращенная в результате запроса отображается вот таким вот нехитрым образом "??? ???? ???".... В бразёре все кодировки перетыкал - не помогает.
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..."
(с) Б.Г.
drRobert вне форума Ответить с цитированием
Старый 03.11.2008, 22:49   #7
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

http://www.phpfaq.ru/charset
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mysql в С++ Ted Общие вопросы C/C++ 3 23.07.2009 14:10
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
MySQL нужна библ. для Visual C++ (MySql++) Alexoid Visual C++ 8 07.05.2008 18:29
Как оптимизировать запрос MySQL с выборкой из двух таблиц. Johnatan SQL, базы данных 6 13.04.2008 03:10
запрос в MySQL, Error Teksa БД в Delphi 4 12.10.2007 22:03