INNER JOIN returns at least one match in each table if there are more matches more rows are returned.
LEFT JOIN returns all rows from the 'left' table (basically the one specified in the FROM statement) regardless of whether there is a match, where there is no match it returns NULL or similar.
RIGHT JOIN is the opposite of a LEFT JOIN so returns all the rows in the 'right' table (basically the one specified after the word JOIN and before ON) regardless of whether there is a match, where there is no match it returns NULL or similar.
FULL JOIN is like both a LEFT JOIN and RIGHT JOIN in which all the records from both tables are returned, it will show both matching and non matching records from both tables
Your diagram to me to be honest is confusing it's coloured circles not tables of data so I can't match it to the concept of joins however...
Lets say you have table a containing data about colours (id, name, rgb, hex) and table b containing people (id, name, age, favourite_colour). The favourite_colour field contains the id of a record (colour) in table a. You can say that table b has a many to one relationship with table b on the afformentioned field. Now to get (join) the favourite colour of all the people in table a we can do something like
SELECT a.*, b.* FROM a LEFT JOIN b ON b.id = a.favourite_colour;
Here if a person in table a does not have a favourite colour then NULL is returned, if you had used INNER JOIN you would only get records of people with a favourite colour, if you had user RIGHT JOIN you would have got all the colours regardless of whether the were anyone's favourite and if you had used FULL JOIN you see all the people with there matched favourite colour, all the people without a matching favourite colour and all the colours that aren't the favourite of anyone.
Hope this help :-)
Edit: Having read the link provided in DOK's comment on the question the circles make sense :)