2014-11-19 15 views
5

Mam następującą procedurę przechowywaną w MySQLMySQL przechowywane procedury z if

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; 

Procedura składowana ma 2 wejścia (IN), kid_Id (Integer) i received_Date (data), i to działa dobrze.

Pytanie: Co chcę jest czy received_Date jest NULL następnie chcę, aby wyświetlić wszystkie daty, jest to możliwe?

Say innymi słowy:

AND rewards.received_at = received_Date powinien działać tylko wtedy, gdy mijam received_Date inaczej zwróci wszystkie daty.

Odpowiedz

2

Spróbuj tego. Użyj OR operatora w where clause uzyskać wszystkie wiersze jeśli 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; 
Powiązane problemy