Я пытаюсь объединить подмножество данных из одной таблицы с данными в другой таблице (пример ниже), и с точки зрения производительности мне интересно, каков наилучший способ сделать это и что является наиболее масштабируемым ,
Таблица, к которой я пытаюсь присоединиться, выглядит следующим образом (другие таблицы уже есть в запросе).
vid kid uid
1 34 12
1 34 15
2 22 18
2 34 18
2 22 15
Мой запрос такой
SELECT * FROM similar
RIGHT OUTER JOIN(SELECT event.stuff, eventdate.stuffshows
FROM events
JOIN evendate ON events.eid=eventdate.eid
WHERE location= 'Paris'
AND event.date
BETWEEN '2009-08-14'
AND '2009-08-17'
GROUP BY event.date
ORDER BY event.date
LIMIT 0 , 5
) mystuff ON event.bid = similar.id
AND event.date=similar.date
Я думаю, что смогу сделать это
SELECT * FROM similar
RIGHT OUTER JOIN(SELECT event.stuff, eventdate.stuffshows
FROM events
JOIN evendate ON events.eid=eventdate.eid
WHERE
user.vid=events.vid AND user.uid=15 AND user.kid=22
location= 'Paris'
AND event.date
BETWEEN '2009-08-14'
AND '2009-08-17'
GROUP BY event.date
ORDER BY event.date
LIMIT 0 , 5
) mystuff ON event.bid = similar.id
AND event.date=similar.date
Меня беспокоит то, что я как бы смешиваю соединение с "где". Стоит ли для производительности установить второе JOIN для user.vid = events.vid? Или лучше сделать ГДЕ, чем объединение?
Есть предложения по этому поводу?