Field Data Types
Have you ever tried to join data in ArcMap only to find that the field you are trying to join on does not appear in the drop down menu?
Chances are your field data types do not match. For example, if one of your joining fields is type "Text" and the other is type "Double", ArcMap does not recognize a match between values in those fields. Text will be read as a string of characters (which can include numbers), and Double will be read as a numerical value. A text number does not equal a numerical number as far as ArcMap is concerned.
The simple solution is to convert the field data type in one of your datasets to match the other, and then you should be able to join them.