我有兩個表按照圖。如何獲得加入或包含在軌道中的兩個表的結果
我想編寫一個查詢,讓我所有的用戶與他們的關聯關係。在關係表中的用戶ID現在是user_id
我已經試過
Relationship.includes(:User)
但這只是給我的關係表的結果,以及
Relationship.joins(:User)
它做同樣的
在這兩個表中都有記錄,正如您從軌道圖中可以看到的那樣,關聯設置正確。這是什麼正確的語法?
我有兩個表按照圖。如何獲得加入或包含在軌道中的兩個表的結果
我想編寫一個查詢,讓我所有的用戶與他們的關聯關係。在關係表中的用戶ID現在是user_id
我已經試過
Relationship.includes(:User)
但這只是給我的關係表的結果,以及
Relationship.joins(:User)
它做同樣的
在這兩個表中都有記錄,正如您從軌道圖中可以看到的那樣,關聯設置正確。這是什麼正確的語法?
你可以試試這個。
User.joins("INNER JOIN relationships ON users.id = relationships.userid").select("users.id, users.name, relationships.useeid, relationships.followsid")
OR
User.joins("INNER JOIN relationships ON users.id = relationships.userid").select("users.*, relationships.*")
將結果轉換成JSON,你可以嘗試以下。
result = User.joins("INNER JOIN relationships ON users.id = relationships.userid").select("users.*, relationships.*")
result = result.to_json
如果你想急於負荷用戶與他們的realtionships,您可以使用類似:
has_many :relationships
belongs_to :user
如何使用它。
User.includes(:relationships)
爲@ user123建議您可以通過
User.eager_load(:relationships)
我目前在rails控制檯上運行這個。當我運行User.includes(:relationship)和User.includes(:relationships)時,我得到SQL SELECT「users」。* FROM「users」,但它告訴我沒有找到ActiveRecord :: AssociationNotFoundError:Association'association'用戶;也許你拼錯了嗎? –
'User'和'Relationship'模型之間的關係是什麼? – DevMarwen
按照這個圖,它是一個用戶對多個關係 –
強制立即加載根據圖中,你需要使用如下的關聯:
User.rb
has_many :relationships
Relationship.rb
belongs_to :user
您可以通過使用
User.eager_load(:relationships).select('users.* , relationships.*')
它會選擇這兩個表中的記錄進行訪問。
這給了我一個新的提示,但單引號和沒有記錄 –
檢查更新代碼 –
你嘗試過這種'User.joins(「INNER JOIN ON users.id = relationships.userid關係」)' –
我相信你問的是一個結果集的列來自兩個表,正確?我有一天面臨同樣的挑戰,但無法找到一個好的解決方案,而不訴諸普通的SQL。我熱切地監控這個線程,看看你是否得到了很好的迴應。 – Agazoom
@Amit Sharma這隻給我的用戶表,而作爲Agazoom說,我試圖讓這兩個 –