CakePHP HABTM查找具有某些相关记录的第一条记录

时间:2014-05-08 19:45:35

标签: sql cakephp has-and-belongs-to-many

我在GamesParticipants之间有HABTM关系。我需要找到一个Game Participants1 ID为2$options['conditions']['participant_id'] = array('1', '2'); $game = $this->GamesParticipant->find('first', $options); 为“绑定”。怎么做到这一点?

我试过

WHERE participant_id IN (1, 2)

哪个不起作用,因为SQL查询以Game结束,这不是我想要实现的目标(它找到第一个Participant 1 { {1}}或2不是两者的人。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

为了找到同时拥有参与者#1和参与者#2的游戏,我认为您需要进行手动加入:

$this->GamesParticipant->find('first',
 array(
    'conditions' => array('participant_id' => 1),
    'joins' => array(
          array(
              'table' => 'games_participants',
              'type' => 'inner',
              'alias' => 'GamesParticipant2',
              'conditions' => array(
                   'GamesParticipant.game_id = GamesParticipant2.game_id',
                   'GamesParticipant2.participant_id' => 2
              )
          )
     )
 ));