我只是在学习 ActiveRecord 和 SQL,我的印象是:include
执行一个 SQL 查询。所以如果我这样做:
Show.first :include => :artist
它将执行一个查询,该查询将返回第一个节目和艺术家。但是查看生成的 SQL,我看到两个查询:
[2013-01-08T09:38:00.455705 #1179] DEBUG -- : Show Load (0.5ms) SELECT `shows`.* FROM `shows` LIMIT 1
[2013-01-08T09:38:00.467123 #1179] DEBUG -- : Artist Load (0.5ms) SELECT `artists`.* FROM `artists` WHERE `artists`.`id` IN (2)
我看到了一个 Railscast 视频,作者正在查看:include
vs :join
,我在控制台上看到了输出 SQL,这是一个大型 SQL 查询,但它只是一个查询。我只是想知道这是应该的还是我错过了什么?