在查询里可以嵌入查询,这个嵌入的查询就是子查询。
比如我们想要得到一组内容数据,在内容项目里要包含用户数据还有用户发布的内容数量 。可以用一条子查询得到作者发布的内容,然后再用 count 统计一下数量。
SELECT id, title FROM post,在查询里包含子查询,可以使用一组括号,括号里面的东西就是要执行的子查询,SELECT id FROM post,用 WHERE 设置一下条件,在这个条件里面可以用 $parent 引用父查询里的东西,用一下 $parent.user。这里就是当前这个 post 数据里的 user 属性。
这回返回的结果项目里面,会包含内容作者发布的内容的 id 列表。
用 count 函数可以统计一下数量,count ,一组括号,括号里面是这个子查询。然后用 AS 给这个结果起个名字,totalPosts。
这次结果项目里面会有一个 totalPosts,它的值就是内容作者发布的内容数量。
如果你希望把这个 totalPosts 放在 user 属性里面,可以添加一个对象,给它起个名字叫 user。这个对象里添加一个 id 属性,值是 user.id,再添加一个 name,值是 user.name。然后添加一个 totalPosts,它的值就是统计的内容数量的结果。