2013-09-17 2 views
0

ли следующие games таблицыНайти повторяющиеся значения полей счетчика в MySQL таблице

`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 
    `content` text COLLATE utf8_unicode_ci, 
    `team1ID` int(7) unsigned DEFAULT NULL, 
    `team2ID` int(7) unsigned DEFAULT NULL, 
    `championshipID` int(10) unsigned DEFAULT NULL, 
    `date` datetime DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    CONSTRAINT `FK_Event_team1ID_Team_id` FOREIGN KEY (`team1ID`) REFERENCES `Team` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, 
    CONSTRAINT `FK_Event_team2ID_Team_id` FOREIGN KEY (`team2ID`) REFERENCES `Team` (`id`) ON DELETE SET NULL ON UPDATE CASCADE 

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

Опишу условие:

  • с games.championshipID=1
  • список должны быть заказаны по убыванию (от максимальной игры рассчитывать на минимум)
  • отсчета игры должен быть рассчитаны games таблица поиска: games.team1ID, games.team2ID
  • и games.date> текущая временная метка

Ну результат должен выглядеть, что

team name | games left 
    teamWithId5 | 68 (row count from games table) 
    teamWithId250| 50 
    teamWithId250 | 4 

не могу понять, как SQL-запрос должен выглядеть следующим образом. Какие-либо предложения?

Thx заранее

ответ

0
select concat('teamwithid', temp_table.id), count(*) as games 
from 
(
select teamid1 as id from games where games.date>curdate() 
union all 
select teamid2 from games games.date>curdate() 
) as temp_table 
group by 1 order by 2 desc 
+0

не работает ... – heron

+0

забыла от, попробуйте сейчас – AdrianBR

0
select t.Name, 
     count(*) as gameCount 
from (select team1ID as id 
     from games 
     where championshipId = 1 and 
       date > now() 
     union all 
     select team2ID as id 
     from games 
     where championshipId = 1 and 
       date > now()) allGames 
     join team t on allGames.id = t.Id 
group by t.Name 
order by gameCount desc 
+0

он вернулся пустой стол в результате – heron

+0

просто попробуйте запустить вложенный запрос - если данные не приходит тогда это из-за всех дат игры, которые были в прошлом, или нет игр с ChampionshipId = 1 – paul

Смежные вопросы