There is one way to minimize this "problem". Use a naming convention that makes field names more unique. For example, if you have products and companies, don't give both of them a field called name. Make one prdname and the other cmpname. Prd_PK and Cmp_PK would prevent PK_A and PK_B. For foreign keys, like a product referenced in a line items table, use linprdfk. The only time you'd have to worry is when you are joining a table with itself. I hardly ever do select * anyways.
>Any way
without having to specify the actual fields to get all the columns from table A, named as they exist, and then all the remaining fields from table B. I do not want to specify the fields that are common to both tables. I want matching records and only 1 occurance of all columns.
>
>For example:
>
>
>SELECT TableA.*, TableB.* WHERE A.Fieldx = B.Fieldx
>
>
>With the result being:
>
>
>Field1, Field2, Field3...
>
>
>Not:
>
>
>Field1_a, Field1_b, Field2, Field3...
>