Actually, if I'm remembering my own code correctly, all of the information you want is returned by
SQL::Parser, I just haven't supplied methods to access it easily. Use
Data::Dumper and you'll see that columns are associated with tables and that the columns in the WHERE clause are listed in addition to the columns in the SELECT clause. It shouldn't be too hard to make methods to access that extra information and I would very happily accept a patch for that :-).