Мне нужно скомпоновать запрос LEFT JOIN
с запросом NOT IN
и должен получить значения результата из этих запросов. Я получаю правильные результаты при использовании этих двух запросов отдельно.MySql как объединить запрос LEFT JOIN с запросом NOT IN
У меня есть две таблицы, вероятно user
и answer
user
стол
user_id
1
2
3
4
5
answer
стол
user_id date
1 2015-10-15 21:23:14
2 2015-10-15 20:23:14
3 2015-11-11 16:23:14
LEFT JOIN
запрос:
SELECT user.user_id
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE DATEDIFF(NOW(),answer.date) > 5
Этот запрос возвращает результат user_id
1,2.
NOT IN
запрос:
SELECT user.user_id
FROM user
WHERE user.user_id NOT IN (SELECT answer.user_id FROM answer)
Этот запрос возвращает результат user_ids
4, 5.
мне нужно, чтобы объединить эти два запроса в один запрос, поэтому я попытался с этими двумя ниже запросов:
SELECT user.user_id
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE (DATEDIFF(NOW(),answer.date) > 5
AND user.user_id NOT IN (SELECT answer.user_id FROM answer))
и
SELECT user.user_id
FROM user
LEFT JOIN answer
ON user.user_id = answer.user_id
WHERE user.user_id NOT IN (SELECT answer.user_id FROM answer)
AND DATEDIFF(NOW(),answer.date) > 5
Но эти возвратные пустые user_id
.
Редактировать
Ожидаемый результат должен содержать значения 1,2,4,5
Что вы ожидаете увидеть как выход? –
не должно быть 'WHERE DATEDIFF (NOW(), answer.date) <5'? – joop