【发布时间】:2013-09-18 13:26:03
【问题描述】:
假设我有一个 ActiveRecord::Base 子类 User 和表 users,我不确定如何在 ActiveRecord 中编写此查询:
SELECT *
FROM (
SELECT users.*
FROM follows
INNER JOIN users ON users.id = follows.following_id
WHERE username LIKE 'r%' AND follows.follower_id = 5717
LIMIT 10
UNION
SELECT *
FROM users
WHERE username LIKE 'r%'
LIMIT 10
) AS users
LIMIT 10
我正在从自定义生成的表格中进行选择。我什至如何开始编写这个查询?这甚至可能吗?如果是,如何,如果不是,我的替代方案是什么?
谢谢!
【问题讨论】:
-
您在寻找什么结果?在您的查询中,您将返回所有用户名为 LIKE 'r%' 的用户,因为查询第一部分的所有结果也将在查询的第二部分中。您需要解释您希望查询返回的内容,因为您的查询不清楚。
-
只是指出,查询结果集在那里是不确定的,除非您添加 ORDER BY 子句来补充每个 LIMIT 子句
标签: mysql ruby-on-rails ruby activerecord