Помогите в поиске в базе данных MYSQL с помощью JOIN - возможно, самостоятельно JOIN? - PullRequest
0 голосов
/ 13 февраля 2010

В представлении у меня есть таблица пользователей, объединяющая данные из нескольких таблиц базы данных. Важными таблицами являются пользователи и приглашения. Я выполняю объединение

LEFT JOIN invitations ON (users.id = invitations.invitee_id)

, который дает мне доступ к users.invitee_id, но у меня также есть динамические параметры поиска в моем запросе, и я не могу найти приглашающего по электронной почте, потому что электронная почта приглашающего определяется с использованием атрибута Invitee_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

1 Ответ

1 голос
/ 13 февраля 2010

Присоединяйтесь к пользователям еще раз

 .... LEFT JOIN users u2 ON (invitations.inviter_id = u2.user_id) 
 WHERE ... AND u2.user_name =[your condition] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...