Ciao a tutti... mi sono incartato

Ho un campo ricerca generico (un motore di ricerca interno) che mi fa la ricerca su due tabelle del database in dei campi stabiliti:

SELECT COUNT(*),
MATCH(nome,cognome,username)
AGAINST('$txt')
OR MATCH(genere1,genere2,genere3)
AGAINST('$txt')
AS score
FROM users
LEFT JOIN a_data
ON users.id = a_data.id_user
WHERE MATCH(nome,cognome,username)
AGAINST('$txt')
OR MATCH(genere1,genere2,genere3)
AGAINST('$txt')

Ora dovrei fare in modo che mi trovi solo gli utenti con valore 1 nel campo 'attivo' della tabella 'active' (una terza tabella).
Ho provato così ma (quanto lo sapevo) mi da errore...

SELECT COUNT(*),
MATCH(nome,cognome,username)
AGAINST('$txt')
OR MATCH(genere1,genere2,genere3)
AGAINST('$txt')
AND MATCH(attivo)
AGAINST('1')

AS score
FROM users
LEFT JOIN a_data
ON users.id = a_data.id_user
LEFT JOIN active
ON users.id = active.id_user

WHERE MATCH(nome,cognome,username)
AGAINST('$txt')
OR MATCH(genere1,genere2,genere3)
AGAINST('$txt')
AND MATCH(attivo)
AGAINST('1')


Sapreste dirmi dove sbaglio?