Запросить возврат результатов на основе row_count в связанной таблице? - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть две таблицы: Match и MatchShots.

У совпадения есть много match_shots, и match_shots принадлежат match.

В моей таблице Match у меня есть атрибут shot_limit.

Я хочу вернуть только те совпадения на основе следующих условий:

  • совпадения shot_limit не равно нулю
  • совпадения shot_limit = 1 и количество совпадений_shots> 0
  • совпадений с shot_limit = 3 и количество совпадений> 2

Ответы [ 2 ]

0 голосов
/ 09 декабря 2010

Чтобы увидеть, как каждое «совпадение» дает количественную оценку различным классификациям, я бы добавил значения в виде столбцов в наборе результатов.

select 
      m.matchID, 
      {whatever other columns},
      count(*) MatchCount
   from  
      match m,
      matchShots ms
   where 
          m.matchID = ms.MatchID
      and ( m.shot_Limit = 1 or m.shot_Limit = 3)
   group by
      m.matchID
   having 
      MatchCount >= m.Shot_Limit
0 голосов
/ 09 декабря 2010

Как насчет чего-то вроде:

select 
  m.* 
from 
  match m 
  inner join 
  matchshot ms 
    on ms.id = m.ms_id 
where 
  m.shot_limit is not null 
group by 
  m.id 
having 
  (m.shot_limit = 1 and count(*) > 0) or 
  (m.shot_limit = 3 and count(*) > 2) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...