X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

> MySQL-запрос
fioru
fioru
Topic Starter сообщение 27.4.2012, 15:09; Ответить: fioru
Сообщение #1


День добрый!

Подскажите, пожалуйста, что я делаю не так в запросе:
SELECT e.`id`, e.`name`, COUNT(s.`id`) AS count_starts FROM `events` e LEFT JOIN `starts` s ON e.`id` = s.`event` ORDER BY e.`id` DESC


Есть две таблицы: соревнования events и старты starts
Подразумевается вывод таблицы соревнований с показом количества стартов включенных в данные соревнования, но по выполнению запроса почему то все соревнования для которых не создан не один старт, т.е. по идее COUNT(s.`id`) AS count_starts = 0, почему то вовсе не показываются

Добавил таблицу участников и сделал новый вид запроса...
по результатам вижу что совсем не понимаю в чем проблема

Запрос:
SELECT e.`id`, e.`name`, COUNT(s.`name`) AS count_starts, COUNT(o.`name`) AS count_sportsmens FROM `events` e LEFT JOIN `starts` s ON e.`id` = s.`event` LEFT JOIN `sportsmens` o ON e.`id` = o.`event` ORDER BY e.`id` DESC


Результат:
id name count_starts count_sportsmens
2 Проверка 2 3


То что по идее хотел добиться:
id name count_starts count_sportsmens
2 Проверка 0 1
3 Проверка2 2 1
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
 
Открыть тему
Ответов (1 - 4)
simply_sash
simply_sash
сообщение 27.4.2012, 16:22; Ответить: simply_sash
Сообщение #2


Первый запрос нужно писать так:
SELECT e.`id`, e.`name`, s.`count_starts` FROM `events` e LEFT JOIN (SELECT `event`, count(`event`) as `count_starts` FROM `starts` group by `event`) s ON e.`id` = s.`event` ORDER BY e.`id` DESC


Сообщение отредактировал simply_sash - 27.4.2012, 16:26


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fioru
fioru
Topic Starter сообщение 27.4.2012, 18:34; Ответить: fioru
Сообщение #3


simply_sash, Большое спасибо! Может подскажите как сделать правильно второй запрос
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
simply_sash
simply_sash
сообщение 27.4.2012, 20:41; Ответить: simply_sash
Сообщение #4


fioru, по аналогии с предыдущим:
SELECT e.`id`, e.`name`, s.`count_starts`, o.`count_sportsmens` FROM `events` e LEFT JOIN (SELECT `event`, count(`event`) as `count_starts` FROM `starts` GROUP BY `event`) s ON e.`id` = s.`event` LEFT JOIN (SELECT `event`, count(`event`) as `count_sportsmens` FROM `sportsmens` GROUP BY `event`) o ON  e.`id` = o.`event` ORDER BY e.`id` DESC


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fioru
fioru
Topic Starter сообщение 28.4.2012, 13:59; Ответить: fioru
Сообщение #5


Большое спасибо, совсем забыл про GROUP BY
Но теперь немного не могу разобраться как применяя GROUP BY получать значения кроме SUM по всем остальным не с первого вхождения, а например второго

Вот запрос:
SELECT r.`time_s` AS `time_s`, r.`time_f` AS `time_f`, r.`time_r` AS `time_r`, r.`scores` AS `scores`, r.`liss` AS `liss`, r.`place` AS `place`, s.`name` AS `name`, s.`team` AS `team`, s.`number` AS `number`, SUM(`scores`) AS `scorestotal` FROM `results` r LEFT JOIN `sportsmens` s ON r.`sportsmen` = s.`id`WHERE s.`group` = 'М10' AND r.`time_s` > 0 GROUP by r.`sportsmen` ORDER BY `liss` DESC, `scores` DESC

Он может быть не идеален но все же...

Есть 3 старта, на данный момент идет проведение 2ого и для вывода используется предварительная сумма за 2 старта, но если рядом попытаться вывести просто scores очки в надежде получить очки за последний старт (2ой из 3) то он выводит только первый!
Как можно обратиться через GROUP чтобы свободные переменные брали значения от 2ого старта

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Запрос на бесплатные полезности
7 Tia2 1955 23.3.2024, 11:27
автор: Alexand3r
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1239 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Web программирование на С/С++/PHP/MySQL/SQL, высоконагруженные проекты
Есть наработки в области бирж трафика, топов, тизеров, видео cj-тубов
4 DFService 3347 8.4.2020, 18:02
автор: DFService
Открытая тема (нет новых ответов) Куплю сайты, внутри темы подробный запрос
3 PticaKate 3648 12.11.2019, 16:22
автор: 0pium
Открытая тема (нет новых ответов) Верстка, php + mysql, недорого
3 devprojectlab 2654 28.10.2019, 18:53
автор: Mukis


 



RSS Текстовая версия Сейчас: 18.4.2024, 11:43
Дизайн