MySQL LEFT JOIN是什么?

今天讲解下mysql的left join的使用方法,除了left join链表查询还有right join,在这里我主要讲解left join,如果这个你掌握了那么right join你也会了。

LEFT JOIN连接两个表,并返回来自两个表的匹配记录和来自“左”表的不匹配记录。

因此,在“FROM”子句之后给出一个表,而在JOIN子句之后给出另一个表; FROM子句中指定的表是左表,LEFT JOIN子句后面的表是右表。LEFT JOIN返回“左”表中的所有行。

右表的值填充了“NULL”值,这些值是不匹配的。语法后的示例使MySQL LEFT JOIN的工作方式更加清晰。

使用MySQL LEFT JOIN的语法

这是MySQL LEFT JOIN的使用方式:

MySQL LEFT JOIN的一个例子

在这个例子中,我使用两个表来解释LEFT JOIN的工作原理。我们有一个员工表,用于存储有关员工的基本信息,而第二个表是存储订单信息的订单表以及获取该特定订单的员工的ID。

这两个表中的公共密钥是员工ID,其用法如下:

使用表别名的示例

如LEFT JOIN的语法所示,您还可以使用表名别名而不是全名来指定公用键。下面的示例返回与上例中相同的结果,除了我使用表别名:

使用带有LEFT JOIN的GROUP BY子句的示例

下面的示例使用带有LEFT JOIN 的MySQL GROUP BY子句。同样,使用员工和订单表,查询返回其订单表中存在记录的员工的总工资:

查询:

结果:

添加HAVING子句示例

同样,您可以添加HAVING子句来过滤使用GROUP BY子句返回的行。请参阅LEFT JOIN,GROUP BY和HAVING子句的组合:

查询:

您可以在上图中看到,这些员工的记录将返回,其汇总工资大于4000。

使用多个LEFT JOIN示例

以下查询使用多个LEFT JOIN组合三个表的数据。除了上面两个表之外,products表也包含在查询中,如下所示:

结果:

 

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: Magento 2查找订单销量MySQL字段值序列化解决办法

下一篇: PHP 高级教程-面向对象编程(OOP)[第一章]

登录 评论
avatar