У меня есть структура таблицы, как показано ниже:
events (boxing, sparring etc)
competitors (users who are participating into diff events)
events_competitors (every competitor's selected events will go here)
Теперь, что я хочу, в соответствии с моим расписанием матчей я хочу найти competitors
из schedules
таблиц, где каждый competitors
будет соответствовать events
, которые они выбрали при регистрации время.
Я использую запрос поиска что-то вроде этого:
$matchdivisions = $this->Competitor->find("all" , array(
'conditions' => array('Competitor.status' => 1,
'Competitor.payment_completed' => 1,
'Competitor.weightgroup_id' => $current_matchsc['Matchschedule']['weightgroup_id'],
'Competitor.rank_id' => $current_matchsc['Matchschedule']['rank_id'],
'Competitor.degree_id' => $current_matchsc['Matchschedule']['degree_id'],
'Competitor.gender' => $current_matchsc['Matchschedule']['gender'],
),
'joins' => array(
array('table' => 'event_competitors',
'alias' => 'EventCompetitor',
'type' => 'left',
'conditions'=> array('EventCompetitor.event_id = '.$current_matchsc['Event']['id']),
)
)
)
);
Здесь я использовал объединения , потому что я не могу найти отношения из EventCompetitor
, соответствующие Competitors
и Events
.
Проблема: одиночная совпадающая запись появляется 10 раз из-за join
, в то время как она должна быть только однократной.
Самый ранний ответ приветствуется.
Заранее спасибо!
Теперь следующий уровень, как только это сработало для меня:
У меня есть два уровня проверки условий, в EventsCompetitors
Я хочу посмотреть, хотят ли они сражаться с поясом black
или они незначительны, и они хотят сражаться с adults
, поэтому в этом В этом случае я хочу видеть эти оба флага и на этом основании, снова мои условия будут изменены, и новые результаты будут отображаться для моих дополнительных дисплеев.
Пожалуйста, дайте мне знать, если когда-нибудь у кого-нибудь появятся идеи по поводу такого рода вещей с CakePHP.
Еще раз большое спасибо stackoverflow за отличное обслуживание!