在视图中,我有一个用户组合表来组合来自多个数据库表的数据。重要的表格是用户和邀请。我正在进行加入
LEFT JOIN invitations ON (users.id = invitations.invitee_id)
这使我可以访问users.invitee_id
,但我的查询中也有动态搜索参数,我无法通过电子邮件搜索邀请者,因为邀请者电子邮件是通过使用与用户表连接的invitee_id来确定的ID。
如何通过电子邮件搜索邀请者?
继承整个查询
["SELECT users.id, users.login, users.email, invitations.inviter_id, FROM users
LEFT JOIN invitations ON (users.id = invitations.invitee_id)
WHERE (users.email LIKE ? OR users.id LIKE ? OR users.login LIKE ?)",
"%#{params[:search]}%","%#{params[:search]}%","%#{params[:search]}%"]
模式
用户:id,登录,电子邮件
邀请:id,inviter_id,invitee_id
答案 0 :(得分:1)
再次加入用户
.... LEFT JOIN users u2 ON (invitations.inviter_id = u2.user_id)
WHERE ... AND u2.user_name =[your condition]