1

我正在使用 Ruby on Rails 3.2.2 和 MySQL。我有一个has_many :through ActiveRecord::Associations生成以下 SLQ 查询的方法 (an):

SELECT DISTINCT `articles`.*
           FROM `articles`
     INNER JOIN `articles_comments_associations` `comment_associations_articles`
             ON `comment_associations_articles`.`article_id` = `articles`.`id`
     INNER JOIN `articles_comments_associations`
             ON `articles`.`id` = `articles_comments_associations`.`article_id`
          WHERE `articles_comments_associations`.`comment_id` = 223
            AND (articles_comments_associations.user_id IN (2))

我想了解它的含义INNER JOIN 'articles_comments_associations' 'comment_associations_articles'注意:有多个数据库表语句INNER JOIN)以及 SQL 查询是如何工作的,因为我没有名为的数据库表comment_associations_articles这是一个错误(即使它按预期工作)

4

1 回答 1

4

它是一个表别名。意思是,它正在将表重命名articles_comments_associationscomment_associations_articles,以便在查询中进一步引用。任何字段或表都可以通过简单地在表/字段引用后面给出另一个名称来命名。

于 2012-06-26T15:03:12.707 回答