SQL:如何在SQL中过滤(WHERE)连接(ON)表?

I have two tables (users and posts) and I want to write out all posts (among other things) by one user. I'm thinking I should use a JOIN and WHERE but I get an error for using WHERE.

This is my code:

SELECT username, post, joinDate, title, info FROM users 
    WHERE userId='18' 
    JOIN posts ON users.userId=posts.userId 
    ORDER BY date DESC

I'm new to this and perhaps there is a better way but I can't figure it out atm. Thankful for all answers!

The JOIN clause comes before the WHERE clause, after the FROM clause. First you join together all the tables you need, then you do your filtering with WHERE. Like this:

SELECT username, post, joinDate, title, info
FROM users 
JOIN posts ON users.userId=posts.userId 
WHERE users.userId='18'
ORDER BY date DESC

try like below

    SELECT u.*,p.*
    FROM users u JOIN posts p ON u.userId=p.userId
    WHERE u.userId=18      
    ORDER BY date DESC

where will be after join and 18 is int datatype value so not need single quote for this and use alias for avoiding ambigous column name

SELECT username, post, joinDate, title, info
FROM users 
JOIN posts ON users.userId=posts.userId and users.userId='18'
ORDER BY date DESC

if userId is in users table then YES you can use where userId='18'.

If userId is in posts table then it should be userId='18' be in join part.