[英]SQL: How do I filter (WHERE) a joined (ON) table in SQL?
我有两个表(用户和帖子),我想写一个用户的所有帖子(以及其他内容)。 我想我应该使用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
我是新手,也许还有更好的方法,但我无法理解它。 感谢所有答案!
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
尝试如下
SELECT u.*,p.*
FROM users u JOIN posts p ON u.userId=p.userId
WHERE u.userId=18
ORDER BY date DESC
where
join
之后将是where
,18是int数据类型值,因此不需要单引号,并使用别名来避免ambigous列名
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
表中,则YES可以使用where userId='18'
。
如果userId
在posts
表中,则userId='18'
应该在join部分中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.