使用带有多个数据库表语句的`INNER JOIN`时意味着什么?
我正在使用Ruby on Rails 3.2.2和MySQL。 我有一个生成以下SLQ查询的方法( has_many :through
ActiveRecord::Associations
):
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
的数据库表 。 这是一个错误 (即使它按预期工作) ?
这是一个表别名。 这意味着,它将表articles_comments_associations
重命名为comment_associations_articles
,以便在查询中进一步引用。 通过在表/字段引用之后简单地给出另一个名称,可以对任何字段或表进行别名。
- 如何在Rails中使用Active Record时指定Ruby正则表达式?
- 续集永远不会返回utf-8,只是ascii-8bit
- 为什么rails试图连接到mysql?
- 多个Rails应用程序,单个MySQL数据库
- 需要sql查询帮助来查找标记有所有指定标签的内容
- Snow Leopard + Ruby 1.9.1 + MySQL Gem =巨大的问题
- 对于#<ActiveRecord :: ConnectionAdapters :: MysqlAdapter,未定义的方法`explain'
- 存储访问器问题:无法在Rails 4中的mysql数据库中读取旧的已存储的json对象序列化(哈希)值
- 如何在Rails中创建“即将到来的生日”模块?