using two cases of exists in sql query
===

I am trying to make a query that says "If the customer has no invoice, but has an appointment in the last 6 months, please give me their clientId and name"  The following result returns and empty set.

    SELECT clients.clientId, clients.studentFirstName, clients.studentLastName 
    FROM  clients, invoices, appointments 
    WHERE (NOT EXISTS 
              (SELECT * 
               FROM invoices, clients 
               WHERE invoices.clientId = clients.clientId)) 
    AND (EXISTS 
             (SELECT * FROM appointments, clients 
             WHERE appointments.clientId = invoices.clientId 
             AND appointments.date >= DATE_ADD(curdate(), INTERVAL 6 MONTH)));