2014-11-19 8 views
5

я следующая хранимая процедура в MySQLMySQL хранимой процедуры с тем, если заявление

SELECT * 
    FROM rewards 
     LEFT JOIN tasks 
     ON tasks.id = rewards.task_id 
     AND rewards.received_at = received_Date 
    WHERE tasks.kid_id = kid_Id 
    ORDER BY tasks.id ASC; 

Хранимая процедура имеет 2 (IN) входы, kid_Id (целое число) и received_Date (дата), и она отлично работает.

Вопрос: То, что я хочу, если received_Date является NULL, то я хочу, чтобы просмотреть все даты, это возможно?

Say других слов:

AND rewards.received_at = received_Date должен работать только тогда, когда я прохожу received_Date в противном случае возвращает все даты.

ответ

2

Попробуйте это. Используйте OR оператора в where clause, чтобы получить все строки, если received_Date is null

SELECT * 
    FROM rewards 
     LEFT JOIN tasks 
     ON tasks.id = rewards.task_id 
       WHERE tasks.kid_id = kid_Id 
       AND (rewards.received_at = received_Date or received_Date = 0) 
    ORDER BY tasks.id ASC; 
Смежные вопросы