2010-02-12 90 views
0

在一個視圖中,我有一個用戶表合併來自多個數據庫表的數據。重要的表格是用戶和邀請。林執行加入幫助用JOIN搜索MYSQL數據庫 - 可能的自動JOIN?

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

請發佈簡化的架構。 – 2010-02-12 22:31:53

+0

你可以在你想要獲取信息的每個表上運行以下命令:SHOW CREATE TABLE'yourtable' 希望我能夠在知道表結構時提供幫助。 – Jonathan 2010-02-12 22:45:15

+0

添加簡單模式 – Mike 2010-02-12 22:47:45

回答

1

用戶加入一個更多的時間

.... LEFT JOIN users u2 ON (invitations.inviter_id = u2.user_id) 
WHERE ... AND u2.user_name =[your condition] 
+0

不能得到任何這樣的工作。 – Mike 2010-03-11 22:01:29