For single table stuff, I like
SQL::Abstract .. I haven't used a sql generator for complex JOINs, etc, though it appears from a quick glance at the docs that
SQL::Builder might suit your needs (via it's
SQL::Builder::Join and
SQL::Builder::JoinGroup classes) ..