I have the following query:
Code MySQL:
SELECT COUNT(VI.id)
FROM Client_Voucher_Items VI
LEFT JOIN Client_Vouchers V
    ON VI.voucherId = V.id
LEFT JOIN Clients C
    ON C.id = V.clientId
LEFT JOIN Items I
    ON I.id = VI.itemId
WHERE I.description = 'Glasses'
AND V.dateVoided IS NULL
AND V.dateCreated >= '2010-01-01'
AND V.dateCreated <=  '2010-01-31'
AND C.id IN (
    SELECT DISTINCT(V.clientId)
    FROM Client_Vouchers V, Clients C
    WHERE C.id = V.clientId
    AND DATE_FORMAT(V.dateCreated, '%Y') - DATE_FORMAT(C.dob, '%Y') - (DATE_FORMAT(V.dateCreated, '00-%m-%d') < DATE_FORMAT(C.dob, '00-%m-%d')) >=  60
    AND V.dateCreated >= '2010-01-01'
    AND V.dateCreated <=  '2010-01-31'
    AND V.dateVoided IS NULL
)
Because of the IN() clause (and mysql's horrible optimization of it) this query is taking 10+ seconds to run. I am not proficient enough with sql to rewrite this without the IN() clause. I can post the table structure if it's not clear.

thank you for any help