0
使用ActiveRecord,我如何從只有一個關聯記錄的數據庫中獲取所有記錄?使用ActiveRecord,我如何從只有一個關聯記錄的數據庫中獲取所有記錄?
例如:我有兩個表,table_a在table_b中有很多相關的記錄。
我想創建一個ActiveRecord查詢,它只提取table_b查詢對象的* table_b *中只有一個關聯的記錄。
我該如何去做這件事?
謝謝!
使用ActiveRecord,我如何從只有一個關聯記錄的數據庫中獲取所有記錄?使用ActiveRecord,我如何從只有一個關聯記錄的數據庫中獲取所有記錄?
例如:我有兩個表,table_a在table_b中有很多相關的記錄。
我想創建一個ActiveRecord查詢,它只提取table_b查詢對象的* table_b *中只有一個關聯的記錄。
我該如何去做這件事?
謝謝!
嗯,我沒有意識到在rails中做這件事的好方法,但是我有一個原始的sql查詢,你可以使用ActiveRecord :: Base.connection.execute來觸發。讓我告訴你,這可能是我曾經建造的最醜陋的查詢,所以很抱歉:-)
SELECT ta.* FROM table_a AS ta INNER JOIN table_b AS tb ON ta.id = tb.table_a_id WHERE
tb.id IN (SELECT temp.id FROM (
SELECT id, count(*) AS count FROM table_b GROUP BY table_a_id
) AS temp WHERE temp.count=1) GROUP BY ta.id;