JOINs are a fundamental part of using relational databases. I suggest if you are going to be using a database a lot then you should take an online course or even buy a book. You may also want to learn about SQL (Structured Query Language) which is the way of manipulating data in the database.
I will try and explain a JOIN, but I am one of those people that understands it yet finds it hard to explain.
Imagine you've got a list of your friends addresses. You know which address belongs to which friend because you've got their name written next to it. On a separate piece of paper, you've got your friends phone numbers. You know which phone number belongs to which friend because they've also got their names next to the numbers.
So, if you want your friend Dave's address and phone number you look up the address on the first list, then the phone number on the second list. Both times you will use 'Dave' when you are searching. Imagine if one or both lists didn't have names on it, you'd have possibly thousands of combinations without knowing which was correct.
In your example, you would have a list of stories and the text that goes with it. Each story has an ID. Then you would have a list of photos. The only way to know which photo goes with which story is if your photos list also has the story ID on it. Then it's easy to find related stories and photos.
The SQL would look like this:
SELECT stories.story_id, stories.bodytext, photo.photo_caption
FROM stories, photo
WHERE stories.story_id = photo.story_id
AND stories.story_id = 1;
The first line says "get these fields of data"
2nd line says "from these tables"
3rd line says "where they share the same story id"
4th line says "in this case, I am interested in story id 1"
Without the JOIN at line 3 you the database would think that you wanted every photo in the photo table listed for story id 1.
Hope that's clear (ish?)