【发布时间】:2020-04-14 19:33:38
【问题描述】:
在一些 Rails 代码中,我发现了以下几行:
User.where('created_at >= ?', '2018-10-10').count
# which results in:
SELECT COUNT(*) FROM "users" WHERE (created_at >= '2018-10-10')
=> 1234
User.where('users.created_at >= ?', '2018-10-10').count
# which results in:
SELECT COUNT(*) FROM "users" WHERE (users.created_at >= '2018-10-10')
=> 1234
使用WHERE users.created_at和WHERE created_at有什么区别吗?
【问题讨论】:
-
在这种情况下没有区别,但你指的是一个称为限定列名(或多部分标识符),如果你有 2 个表连接在一起,它们都有一个 created_at 列,你会需要在 where 子句中指定使用哪个
created_at列,否则会有歧义
标签: mysql ruby-on-rails postgresql