我有两个表(用户和帖子),我想由一个用户写出所有帖子(以及其他内容)。我想我应该使用JOIN和WHERE,但是使用WHERE时出现错误。
这是我的代码:
SELECT username, post, joinDate, title, info FROM users
WHERE userId='18'
JOIN posts ON users.userId=posts.userId
ORDER BY date DESC
我对此并不陌生,也许有更好的方法,但是我无法弄清楚atm。 感谢所有的答案!
答案 0 :(得分:5)
JOIN子句在WHERE子句之前,在FROM子句之后。首先,将所需的所有表连接在一起,然后使用WHERE进行过滤。像这样:
SELECT username, post, joinDate, title, info
FROM users
JOIN posts ON users.userId=posts.userId
WHERE users.userId='18'
ORDER BY date DESC
答案 1 :(得分:-1)
尝试如下
SELECT u.*,p.*
FROM users u JOIN posts p ON u.userId=p.userId
WHERE u.userId=18
ORDER BY date DESC
where
将在join
之后,并且18是int数据类型值,因此不需要单引号,并使用别名来避免列名不正确
答案 2 :(得分:-1)
SELECT username, post, joinDate, title, info
FROM users
JOIN posts ON users.userId=posts.userId and users.userId='18'
ORDER BY date DESC
如果userId
在users
表中,则是,您可以使用where userId='18'
。
如果userId
在posts
表中,则它应该userId='18'
在联接部分。