Hey Aditya,
INNER JOIN - you get everythin in A for which there is something in B, you write it as A INNER JOIN B or A JOIN B, INNER is optional.
OUTER JOIN - you get everything in A even for which there is nothing B, wriiten as A LEFT OUTER JOIN B or A LEFT JOIN B, outer is optional, these concepts are same as in SQL, the next part however is smthin new:
FETCH JOIN - You can make a left (outer) join as a fetch join by specifying it in query. It specified as just FETCH before a LEFT (OUTER) JOIN. This join is used to get data from an entity which has tht same data annotated as fetch=lazy, so to eagerly fetch it for use in query we use fetch join.
Remember it is not safe according to spec to access data tht has been marked as lazy fetch unless you access it before using it or get it in query using fetch join.
That question in enthuwarte was
testing two points mainly: 1) knowlwdge of joins 2) wheether you specify FETCH before or after JOIN. hope this helps...