簡體   English   中英

SQL查詢,用於從具有反向關系的三個表中聯接數據

[英]SQL query for joining data from three tables with reverse relationships

我有三個表:玩家,游戲,隱藏

這是播放器模型

  has_many :hides, :foreign_key=> "hider_id",
                   :dependent => :destroy

  has_many :hidees, :through => :hides

這是屬於“隱藏模型”的屬性。

  attr_accessible :hidee_id

  belongs_to :hider, :class_name => "Player"
  belongs_to :hidee, :class_name => "Game"

  validates :hider_id, :presence => true
  validates :hidee_id, :presence => true

這是游戲模型:

  has_many :reverse_hides,  :foreign_key => "hidee_id",
                            :class_name => "Hide",
                            :dependent => :destroy

  has_many :hiders, :through => :reverse_hides

我想編寫一個查詢,該查詢將返回當前玩家隱藏的所有游戲。

目前我有: Game.joins(:hiders)返回所有標記為隱藏的游戲,我該怎么做才能找到僅被特定玩家隱藏的游戲……例如where('Player.id = ?'hider_id)<-這似乎沒有用。

感謝您的幫助和時間!

當然,這並不能充分利用Rails的魔力,但是如果我正確地理解了您的模型,它應該可以工作:

Game.joins('JOIN hides ON hides.hidee_id = games.id').where('hides.hider_id = ?', player.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM