[main] left join [sub] it takes one record from main, and takes the first match from sub. if no such exists it leaves values as null [main] inner join [sub] it takes one record from main, if no matches with sub, record discarded if more than one match, it makes a copy of the main row for each matched row in sub dont remember right join... prolly reverse of left