The columns in a join must contain data from the same domain. The fact that these columns have different types or (if they are character columns) different lengths indicates that their contents are not from the same domain. Check the spelling of the column names to make sure that you named the correct columns. Review the design of the database, and make sure that these tables are meant to be joined on these columns.