新手问题 关于 join 的问题

w353284782 · 2012年08月30日 · 最后由 w353284782 回复于 2012年08月30日 · 2379 次阅读

小弟最近有遇见问题了,具体如下:

我有两张表 message(消息表)user(用户表)message 表中有 3 个字段 user1_id(发信息用户 ID)user2_id(收信息用户 ID)info(内容)user 表 中一个 name(用户名)字段 请问一下在 rails 中用户 joins 能否将 2 张表连接起来 查询 message 的时候将 user 的名称也能查出来?

还有就是 我用过 find_by_sql 如果是是

Message.find_by_sql("select users.name from users INNER JOIN messages ON messages.users1_id = users.id") 

这样的话查出来的全是 Message 的空对象!

SOS!😭

匿名 #1 · 2012年08月30日

messages = Message.find_by_sql("select messages.*,user1.name as user1_name,user2.name as user2_name from messages left join users user1 on(user1.id = messages.user1_id) left join users user2 on(user2.id = messages.user2_id) ",:conditions=>["messages.user1_id = ?",1]) 手敲的,不保证语法对不对 messages.first.user1_name #=>"你要的名字" messages.first.user2_name #=>"呵呵,这是 user2 表的"

匿名 #2 · 2012年08月30日

mysql 我忘了 messages.* 是不能再 select 参数的最后还是前面,忘了,不过记得这里有一个语法的错误

#2 楼 @help5305fff 好的 成功!谢谢!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册