Mysql 左连接前的WHERE子句不起作用
我有一个很好的工作方式:Mysql 左连接前的WHERE子句不起作用,mysql,sql,Mysql,Sql,我有一个很好的工作方式: SELECT posts.*, members.username, categories.category_name FROM posts LEFT JOIN members ON posts.post.by = members.id LEFT JOIN categories ON posts.post_category = categories.category_id ORDER BY posts.post_da
SELECT posts.*, members.username, categories.category_name
FROM posts
LEFT JOIN members
ON posts.post.by = members.id
LEFT JOIN categories
ON posts.post_category = categories.category_id
ORDER BY posts.post_date DESC
LIMIT $start, $limit
但我希望这是一个条件:
WHERE posts.post_by = 1
我想不出正确的方法,我试着把它放在末尾,在限制之前,在FROM posts之后,但是结果是空的。where子句放在FROM之后:
SELECT posts.*, members.username, categories.category_name
FROM posts
LEFT JOIN members
ON posts.post.by = members.id
LEFT JOIN categories
ON posts.post_category = categories.category_id
WHERE posts.post_by = 1
ORDER BY posts.post_date DESC
LIMIT $start, $limit;
join
s是from
子句的一部分,这就是为什么我将查询缩进为:
SELECT posts.*, members.username, categories.category_name
FROM posts LEFT JOIN
members
ON posts.post.by = members.id LEFT JOIN
categories
ON posts.post_category = categories.category_id
WHERE posts.post_by = 1
ORDER BY posts.post_date DESC
LIMIT $start, $limit;
您是否确认在posts表中有一个id为1的条目?我为什么需要它?条件是获取post_by=1列中的条目。您的post有语法错误。。。应该是
post\u by
,而不是post.by
,这就是我的意思,posts.post\u by列的值为1(members\u id),您是指在联接之后。@juergend。不,我是说在中的之后join
s不是SQL中的子句,它们是from
子句中的语句。