Mysql 使用condition-ruby-on-rails连接两个表

Mysql 使用condition-ruby-on-rails连接两个表,mysql,ruby-on-rails-3,activerecord,join,Mysql,Ruby On Rails 3,Activerecord,Join,我想加入2张桌子,游戏和游戏日志。我是这样做的: game_joins = Game.joins(:game_logs) 成功了。但问题是,我只想加入其中的球员_id=1(例如)。列player_id只能在表game_日志中找到。所以,当我这么做的时候: game_joins = Game.joins(:game_logs).where(:player_id => 1) 找不到列player\u id,因为 Game.joins(:game_logs) 将导致: SELECT

我想加入2张桌子,游戏和游戏日志。我是这样做的:

game_joins =  Game.joins(:game_logs)
成功了。但问题是,我只想加入其中的球员_id=1(例如)。列player_id只能在表game_日志中找到。所以,当我这么做的时候:

game_joins =  Game.joins(:game_logs).where(:player_id => 1)
找不到列player\u id,因为

Game.joins(:game_logs)  
将导致:

SELECT games.* FROM games
  INNER JOIN game_logs ON game_logs.game_id= game.id

所以,问题是我有什么可能从表game_日志中过滤带有条件的game_连接。我希望我解释得足够好。感谢您所需的model GameLog中的

game_joins =  Game.joins(:game_logs).where(:game_logs => { :player_id => 1 })
 belongs_to :game
在模型游戏中你需要

 has_many :game_logs
然后修改查询的一种方法是

 game_joins =  Game.joins("left join game_logs on games.id = game_logs.game_id").where("game_logs.player_id = 1").all
或者你可以使用

  game_joins =  Game.joins(:game_logs).where("game_logs.player_id = 1").all

在模型游戏日志中,您需要

 belongs_to :game
在模型游戏中你需要

 has_many :game_logs
然后修改查询的一种方法是

 game_joins =  Game.joins("left join game_logs on games.id = game_logs.game_id").where("game_logs.player_id = 1").all
或者你可以使用

  game_joins =  Game.joins(:game_logs).where("game_logs.player_id = 1").all