Okay, let me see if I can straighten you out here. Given the following two tables:
+------------------------------------------+
| table_member |
+-------------+--------------+-------------+
| member_id | first_name | last_name |
+-------------+--------------+-------------+
| 1 | Brett | Patterson |
| 2 | Joe | Schmoe |
+-------------+--------------+-------------+
+-----------------------------------------------------------------------------------------+
| table_content |
+--------------+------------------+-----------------+--------------------+----------------+
| content_id | content_author | content_title | content_category | content_body |
+--------------+------------------+-----------------+--------------------+----------------+
| 1 | 2 | Something | Category 1 | Some wierd ... |
| 2 | 1 | Heya There | Category 2 | Sports Fan! |
| 3 | 1 | What Up | Category 1 | my man? |
+--------------+------------------+-----------------+--------------------+----------------+
Now, say you wanted to get the users name, along with the title and content_id. You would use a JOIN query like this:
SELECT tc.`content_id`, tc.`content_title`, tm.`first_name`, tm.`last_name`
FROM `table_content` tc
LEFT JOIN `table_member` tm
ON tc.`content_author` = tm.`member_id`
That would yield the following result set:
+--------------+-----------------+--------------+-------------+
| content_id | content_title | first_name | last_name |
+--------------+-----------------+--------------+-------------+
| 1 | Something | Joe | Schmoe |
| 2 | Heya There | Brett | Patterson |
| 3 | What Up | Brett | Patterson |
+--------------+-----------------+--------------+-------------+
Notice how you automatically get the name without a secondary query? I'll elaborate more when I get back from dinner.
Elaboration:
Okay, so what's the difference between joins? Well, a LEFT join will take the table listed on the left of the join and use that to determine how many rows there are. Any rows on the left that aren't in the right table will have NULL values associated with them. In our example above, since we are pulling the table_member table onto the table_content table, our table_content table defines the number of rows our result will have. In our case it's 3. But let's say we keep the table_member table the same, and add a new row with the following values;
| content_id | content_author | content_title | content_category | content_body |
+--------------+------------------+-----------------+--------------------+----------------+
| 4 | 10 | Uh Oh!! | Category 1 | Supercalafr... |
+--------------+------------------+-----------------+--------------------+----------------+
Now when we do a join, we'll have 4 rows in our result, and they'll come up like so:
+--------------+-----------------+--------------+-------------+
| content_id | content_title | first_name | last_name |
+--------------+-----------------+--------------+-------------+
| 1 | Something | Joe | Schmoe |
| 2 | Heya There | Brett | Patterson |
| 3 | What Up | Brett | Patterson |
| 4 | Uh Oh!! | NULL | NULL |
+--------------+-----------------+--------------+-------------+
Now, a RIGHT join will do the same thing, just with the table on the right of the join operand:
[RIGHT|LEFT] JOIN `tablename`
ON [color=blue]LEFT_TABLE[/color] = [color=red]RIGHT_TABLE[/color]
Hope that helps out.
Oh, and just so you know, if you did a right join, the last column wouldn't show up because the table_member would define how many rows to return. Since there are only 2 users, only those rows in table_content with an content_author of a value in table_member.member_id will be listed (in this case, Brett and Joe).
Also note that when I say "how many rows to return" I mean if there is no other limiting clauses like WHERE or LIMIT.