MySQL LEFT JOIN NULL values
===

This question is further to one that was answered back in March 2012. As this is 4 months later I have raised a new question. Reference: http://stackoverflow.com/questions/9607767/mysql-left-join-values-can-be-null

My SQL statement as it stands is below:

    SELECT cs.case_id, cs.child_firstname, gu.* 
    FROM tblcases AS cs 
    LEFT JOIN tblguardians AS gu 
    ON cs.case_id = gu.case_id AND gu.firstname LIKE '%Craig%'
    WHERE cs.child_firstname LIKE '%Sally%' 

This works fine:

 1. If both values are set (per the example above).
 2. If cs.child_firstname is set and gu.firstname is a wildcard only

However, if cs.child_firstname is a wildcard only and gu.firstname is set then all rows in the database are returned, including NULL values - ideally in that situation I don't want the NULL values.

Can this query be rewritten to do everything or do I need to have more than 1 query?