0
這個查詢產生一些奇怪的SQL和我不明白的地方怪異的表名來自:在爲什麼我的sql在Rails中產生怪異的命名?
order.apples.joins(:apple_trees).to sql
結果:
SELECT "apples".* FROM "apples" INNER JOIN "apple_trees" "apple_trees_trees" ON "apple_trees_trees"."apple_id" = "apple"."id" INNER JOIN "apple_trees" ON "apples"."id" = "apple_trees"."apple_id" WHERE "apple_trees"."tree_id" = $1 [["tree_id", 393]]
我感到困惑的這一部分:
INNER JOIN "apple_trees" "apple_trees_trees" ON "apple_trees_trees"."apple_id" = "apple"."id"
這是什麼apple_trees_trees的一部分?我只有一個蘋果表和一個apple_trees表。爲什麼這個sql生成的表名附加了額外的trees
?
'apple_trees_trees'是SQL中的別名,因爲您有一個自連接,它必須爲第二個'apple_trees'表分配一些新名字 –
看起來它只是一個別名。至於爲什麼?不確定。 –
這是否是有效的SQL?什麼是''蘋果「。」id「'在這裏?查詢中沒有「apple」表。 –