У меня есть visits
таблицу с тремя столбцами userid
, url
, посещения пользователей date
Какой должна быть правильно MySQL Query для ниже требования
Каждый день на нескольких страницах, и мы храним одну запись для каждого визита в visits
таблице.
Теперь я хочу, чтобы список url
посетил сегодня (userid
), но не вчера.
Это текущий запрос, который я пытаюсь.
SELECT clickid
FROM visits
WHERE userid='221001'
AND date = '2015-08-20'
AND clickid NOT IN (SELECT clickid FROM visits WHERE userid='221001' AND date = '2015-08-19')
, но этот запрос занимает слишком много времени. Наша таблица может иметь до 0,2 М строк во внутреннем запросе
Как я могу сделать это простым и быстрым?
Вы ищете оператор 'GROUP BY'. – Cyrbil
Как и комментарии выше, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry
отредактировал мой вопрос. –