在数据库客户端先练习一段查询,找出某个用户点过赞的内容列表。 SELECT 所有的东西,来自 post 数据表,执行一下。查询出来的东西就是就是一组内容。
在查询里用 LEFT JOIN 这种方法拼接一个数据表,拼接的是 user_like_post 这个表,ON user_like_post 里的 postId 等于 post.id 。 执行一下。
这回查询出来的东西就是把 post 跟 user_like_post 拼接到一块儿了,最后这两个栏目是 userId 还有 postId,这两个栏目来自 user_like_post 数据表。
在这个结果里面,如果这个内容没有被赞过,它的第二个 userId 还有 postId 栏目的值都会是 NULL。在拼接的结果里去掉这些没被点过赞的内容,可以把这个 LEFT JOIN 换成 INNER JOIN,再执行一下这段查询。你会发现,这次在结果里去掉了没被点过赞的内容。
在这段查询里再用 WHERE 设置一个过滤条件,条件是 user_like_post 里的 userId 等于 6,执行一下。这个查询的意思就是找出 id=6 的这个用户赞过的内容。
在 user_like_post 数据表里可以手工再添加一条数据记录,userId 的值是 6,postId 的值是 1,保存一下。这条记录的意思就是 id=6 的这个用户赞了 id=1 的这个内容。
回到再执行一下这段查询,这次会找出两个内容项目,它们都是 id=6 的这个用户赞过的内容。