обновление SQL-запроса соединения - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть этот запрос:

   SELECT e.id AS event_id, e.title, e.date, e.category, e.place,
          p.id, p.name, p.coor, p.nz,
          a.user, a.event, COUNT(a.user) AS attending
     FROM events AS e
LEFT JOIN attendance a
       ON a.event = e.id
LEFT JOIN places p
       ON p.id = e.place
 GROUP BY e.id, e.title
 ORDER BY attending DESC

этот запрос получает события из таблицы событий и объединяет некоторые другие таблицы ... (если вы поможете мне сделать его более эффективным, я бы поблагодарил вас)

У меня есть еще одна таблица с именем: Invite_friends:

event_id    bigint(20)    
user_id int(11)   
owner   tinyint(1)

хранит идентификаторы пользователей, приглашенных для определенного события .. (владельцем является bool, которое хранит, если пользователь является создателем события)

Я хочу выбрать, только если текущий пользователь приглашен на основании данных в таблице Invite_friends.

1 Ответ

0 голосов
/ 28 февраля 2012

Я не слишком знаком с MySql, но здесь идет речь:

SELECT e.id AS event_id, e.title, e.date, e.category, e.place,
      p.id, p.name, p.coor, p.nz,
      a.user, a.event, COUNT(a.user) AS 
FROM 
    events AS e
    LEFT JOIN attendance a ON a.event = e.id
    LEFT JOIN places p ON p.id = e.place
WHERE 
    e.Category <> 4 
OR  EXISTS (SELECT
                NULL
            FROM
                invited_friends
            WHERE
                invited_friends.event_id = e.id
            AND invited_friends.user_id = @username -- User to search for
            )
GROUP BY 
    e.id,
    e.title
ORDER BY 
    attending DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...