这是来自Rails文档:
12.1.3.2加入嵌套关联(多级)
for(i = 0; i < size-2; i++) {
for (j = i+1; j < size-1; j++) {
for (k = j+1; k < size; k++) {
/* Check if the sum of current triplets
is equal to "K" */
if(array[i] + array[j] + array[k] == K) {
printf("Triplet Found : %d, %d, %d\n", array[i], array[j], array[k]);
return 1;
}
}
}
}
/* No triplet found whose sum is equal to K */
return 0;}
这会产生:
Category.joins(articles: [{ comments: :guest }, :tags])
或者,用英语:“返回所有有文章的类别,这些文章都有客人发表的评论,这些文章也有标签。”
所以一切都有道理。但是如何在ActiveRecord中获取此SQL:
SELECT categories.* FROM categories
INNER JOIN articles ON articles.category_id = categories.id
INNER JOIN comments ON comments.article_id = articles.id
INNER JOIN guests ON guests.comment_id = comments.id
INNER JOIN tags ON tags.article_id = articles.id
如何将SELECT categories.* FROM categories
INNER JOIN articles ON articles.category_id = categories.id
INNER JOIN comments ON comments.article_id = articles.id
INNER JOIN guests ON guests.comment_id = comments.id
INNER JOIN tags ON tags.comments_id = comments.id
加入tags
。在英语中,我想要:
“返回所有包含文章的类别,其中这些文章包含来自访客的评论,以及这些评论还有标记的位置。”
更重要的是,想到卷曲与方括号的好方法是什么?
答案 0 :(得分:0)
我认为这是你正在寻找的东西:
Category.joins(articles: { comments: [:guest, :tag] })
将花括号(哈希)视为连接表的嵌套条件。可以将方括号(数组)视为连接多个表的方法。