I have two tables: “users” and “posts.” The posts table has a ‘post’ column and a ‘poster_id’ column. I’m working on a PHP page that shows the latest posts by everyone, like this:
SELECT * FROM posts WHERE id < '$whatever' LIMIT 10
This way, I can print each result like this:
id: 43, poster_id:'4', post: hello, world
id: 44, poster_id:'4', post: hello, ward
id: 45, poster_id:'5', post: oh hi!
etc...
Instead of the id, I would like to display the NAME of the poster (there’s a column for it in the ‘users’ table)
I’ve tried the following:
SELECT *
FROM posts
WHERE id < '$whatever'
INNER JOIN users
ON posts.poster_id = users.id LIMIT 10
Is this the correct type of join for this task? Before learning about joins, I would query the users table for each post result. The result should end up looking similar to this:
id: 43, poster_id:'4', name:'foo', post: hello, world
id: 44, poster_id:'4', name:'foo', post: hello, ward
id: 45, poster_id:'5', name:'fee', post: oh hi!
etc...
Thanks for helping in advance.
WHEREclause must come after theFROMclause.the SQL Order of Operation is as follows:
UPDATE 1
For those column names that exists on both tables, add an
ALIASon them so it can be uniquely identified. example,on the example above, both tables has column name
colName. In order to get them both, you need to add alias on them so in your front end, usePostColandUserColto get their values.