WHERE publisherid IN (3,746)
is the same as
WHERE (publisherid = 3 OR publisherid = 746)
Oops, I just saw there is another
IN clause in your query 🙂
IN is perfect in this context. You can use EXISTS instead, if you like that better (I don’t):
SELECT firstname, lastname FROM author a WHERE EXISTS ( SELECT NULL FROM published_by p JOIN written_by w ON w.bookdescid = p.bookdescid WHERE p.publisherid IN (3,746) AND NOT w.role LIKE ('%translator%') AND NOT p.role LIKE ('%editor%') AND w.authorid = a.authorid );
CLICK HERE to find out more related problems solutions.