您的位置:首页 > 数据库 > MySQL

MySQL多表查询

2015-09-26 15:51 344 查看
多表查询有三种方式:

1.普通查询-多表(优先选择)

首先创建两个表,第一个表用于注册用户,如下所示,



第二个表用于发帖,如下所示,



此时这两个表是没有任何关系的,在指定位置加一个字段,用after关键字,指令如下:



然后往两个表中插入如下数据,

user表中的数据,



post表中的数据,



现在想要查询发帖的用户有哪些,以及发帖的内容,其指令如下:



这是最简单最直接的多表查询。

查询每个用户发了多少篇帖子,语句如下,



聚合之前一定要分组group by,分组的依据可以是post.uid也可以是user.id或者其它可以区分用户身份的字段。



2.嵌套查询-多表

在普通多表查询的结果中,distinct可以将数据唯一化,



唯一化



为达到同样的查询效果,就诞生了嵌套查询的方式,



3.左链接查询-多表

普通查询中,对于没有发帖的人会自动的被过滤掉,为了解决这个问题,可以使用左链接的方式,会查出所有的用户,如果没有属性值,则以NULL填充,如下所示,



这种方式可以将发生关系的数据表(关系数据库)中的需要全盘显示的放在最左边,而与之匹配的放在右边,如果没有与之对应的项,就以NULL填充。

如果只显示每个用户的第一条数据,可以使用聚合group by命令,命令如下,



基于多表查询的三种方式中,最先应该使用普通多表查询,因为它速度相对比较快,占用资源比较少。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: