I really like your explanations. I have never been able to wrap my head around joins.
You say that: "Programming is best learned by doing", but I am struggling to do anything...
It would be great if there was some online area like SQL Fiddle with the data loaded, so I can run queries and see results in my browser without having to set anything up or am I missing something.