Joining two tables giving ambigous column error on mysql

Hi,

I am doing a join of two tables with a column with same name in both. I am using “includes” to have a full join. This is giving ambiguous column error. The columns cannot be removed from either of those and renaming any of the two would involve two many changes. So, is there any way this can be resolved?

Regards, Sumit

Better context please.

Hi,

I am doing a join of two tables with a column with same name in both. I am using "includes" to have a full join. This is giving ambiguous column error. The columns cannot be removed from either of those and renaming any of the two would involve two many changes. So, is there any way this can be resolved?

try this

Foo.includes(:bar).order('foos.name, bars.name').where('foos.name = ? AND bars.name = ?', 'fooname', 'barname')

just specify the table you are trying to access.

I am doing a join of two tables with a column with same name in both. I am

using “includes” to have a full join. This is giving ambiguous column error.

The columns cannot be removed from either of those and renaming any of the

two would involve two many changes. So, is there any way this can be

resolved?

Better context please.

Table 1: id, name, email, ip_address

Table 2: id, order_name, ip_address

When I am joining these two tables. I receive ambiguous column error.

Thanks. Got it fixed.

Regards Sumit Srivastava

The power of imagination makes us infinite…

How to write test cases for such errors? Is it possible?

Hi,

I am doing a join of two tables with a column with same name in both. I am using "includes" to have a full join. This is giving ambiguous column error. The columns cannot be removed from either of those and renaming any of the two would involve two many changes. So, is there any way this can be resolved?

try this

Foo.includes(:bar).order('foos.name, bars.name').where('foos.name = ? AND bars.name = ?', 'fooname', 'barname')

just specify the table you are trying to access.

How to write test cases for such errors? Is it possible?

If you're going to ask me, I personally think that this specific error should not be written a test case. In the first place, the code will not run if there is such an error so that code shouldn't be committed.

Well, no, that's not really the test you want to write.

The test to write is (before you've implemented the (bad?) code) one that will compare a given initial condition (setting test data in tables) will return the expected value (a data set with the combined tables). Often writing the test will enable you to determine how to write the code, and foresee potential problems.