2015-05-20 1 views
1

как показать отсутствует и присутствует этот код показывает только присутствует, но я хочу, отсутствующий результат также с датой , если я удалить WHERE a.date BETWEEN '2015-05-20' AND '2015-05-20'как показать отсутствует и присутствует с использованием MySQL PHP

это, то отсутствует и присутствует результат показывает совершенным, но я хочу с выбранной датой

, как решить эту проблему, пожалуйста, помогите мне решить эту проблему

благодаря

живой пример, пожалуйста, себе Thi s ссылка

http://sqlfiddle.com/#!9/9604f/2

Mysql код

SELECT s.user_name, s.user_pass,a.date 
    , CASE WHEN a.user_name IS NOT NULL THEN 'Present' ELSE 'Absent' END as attendance_status 
    FROM users s 
    LEFT JOIN attend a on s.user_name=a.user_name WHERE a.date BETWEEN '2015-05-20' AND '2015-05-20' 
+0

Каким должен быть желаемый результат? – Strawberry

ответ

1

Вы должны переместить состояние от where к статье on:

SELECT s.user_name, s.user_pass, a.date, 
     (CASE WHEN a.user_name IS NOT NULL THEN 'Present' ELSE 'Absent' 
     END) as attendance_status 
FROM users s LEFT JOIN 
    attend a 
    ON s.user_name = a.user_name AND a.date BETWEEN '2015-05-20' AND '2015-05-20'; 

Предложение WHERE превращает внешнее соединение в внутреннее соединение, поскольку оно отфильтровывает значения NULL.

Смежные вопросы