Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 左连接前的WHERE子句不起作用_Mysql_Sql - Fatal编程技术网

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
子句中的语句。