in reply to Hash-clobbering in DBD's fetchrow_hashref

This is expected behavior. To differentiate the column names you need to use something like
select table_a.id as "id1", table_b.id as "id2", ...
or (at least in Sybase/MS-SQL - might not work with MySQL)
select "id1" = table_a.id, "id2" = table_b.id, ...
Michael