我有如下表结构:
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
将与{匹配}他们在注册时选择了{1}}。
我正在使用这样的查找查询:
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
匹配的关系。
问题:单个匹配记录有10次,因为Events
,而它应该只有一次。
最早的回复将不胜感激。
提前致谢!
一旦这对我有用,现在是下一个级别:
我有两个级别的条件检查,join
我希望看到,如果他们想与EventsCompetitors
腰带打架,或者他们是未成年人,他们想与{{{{ 1}}所以在这种情况下,我希望看到这两个标志,并在此基础上再次改变我的条件,并为我的附加显示器显示新的结果。
请告诉我,如果有人有人对CakePHP这类东西有所了解。
再次感谢 stackoverflow 提供优质服务!
答案 0 :(得分:0)
如果您只对单个记录感兴趣并且始终确保其他记录是重复的,那么您可以使用find('first',...)代替。
如果您对多个不同的记录感兴趣,但是您获得了每个记录的倍数,您可以在'group' => array('')
中添加以汇总特定字段上的竞争对手,只返回一次?