Originariamente inviato da piero.mac
Senza le parentesi per OR la query risultera' imprevedibile causa la precedenza degli operatori.

cosi' come l'hai presentata funzionerebbe cosi':

codice:
WHERE 
(id_personale IN(19,33,22) AND '2011-05-10' BETWEEN data_start AND data_end )
OR 
('2011-06-25' BETWEEN data_start AND data_end)

-- mentre tu credo vorresti:

WHERE id_personale IN(19,33,22) 
AND 
('2011-05-10' BETWEEN data_start AND data_end 
OR 
'2011-06-25' BETWEEN data_start AND data_end)
Hai ragione Piero, dovendo fare in questo modo come la vedi:

codice:
WHERE id_personale='19' AND '2010-06-17' BETWEEN data_start AND data_end

OR id_personale='19' AND '2010-06-18' BETWEEN data_start AND data_end

OR id_personale='19' AND '2010-09-29' BETWEEN data_start AND data_end

OR id_personale='33' AND '2010-06-17' BETWEEN data_start AND data_end
Essendo tutti OR e tutti confronti tra id e range di date, dovrebbe essere ok o consigli sempre di mettere le parentesi?