0
我需要使用阿雷爾與如何從Arel中的別名表中生成選擇?
SELECT c2.user_id, MAX(c2.created_at) as max_created_at
FROM comments AS c2
GROUP BY c2.user_id
被用作一個大的查詢子查詢的形式
SELECT *
FROM comments
INNER JOIN (...subquery...) s1
ON comments.user_id = s1.user_id
AND comments.created_at = s1.max_created_at
,我無法弄清楚如何別名comments
表中生成SQL子查詢。
我能得到的最接近的是
c2 = Comment.arel_table.alias
s1 = Comment.arel_table.project(
c2[:user_id], c2[:created_at].maximum.as('max_created_at')
).group('user_id').as('s1')
但這產生不正確的SQL
SELECT c2.user_id, MAX(c2.created_at) as max_created_at
FROM comments
GROUP BY c2.user_id
(錯誤,因爲C2是沒有定義)
生成查詢,而不走樣導致表名內部和外部子查詢發生衝突時,結果不正確。
這給出了Arel::TableAlias
有project
方法錯誤。
s1 = c2.project(...
如何使用Arel查詢別名表?