技术开发 频道

剖析MySQL左连接/右连接/等值连接异同

  【IT168 技术】作者的话:从业以来,发现很多技术人员和同事向笔者或是在网络上咨询过LEFT JOIN 如何写及其特性,而等值连接一般都没问题,几年前曾经写过一份Microsoft SQL Server版本的,此次特意再写一份MySQL版本的,希望阅读过的技术人员,可以起到解惑功效。

  1、三种连接的语法

  为便于更多的技友快速读懂、理解,我们只讨论2张表对象进行连接操作的情况,大于2张表对象进行的连接操作原理也是一样的。

  左连接(LEFT JOIN )

SELECT M.columnname……,N.* columnname…..
FROM left_table M LEFT JOIN right_table N
ON M. columnname_join=N. columnname_join AND N. columnname=XXX
WHERE M.columnname
=XXX…..

   右连接(RIGHT JOIN)

SELECT M.columnname……,N.* columnname…..
FROM left_table M RIGHT JOIN right_table N
ON M. columnname_join=N. columnname_join AND M. columnname=XXX
WHERE N.columnname
=XXX…..

   等值连接

SELECT M.columnname……,N.* columnname…..
FROM left_table M [INNER] JOIN right_table N
ON M. columnname_join=N. columnname_join
WHERE M.columnname
=XXX….. AND N.columnname=XXX….

或者
SELECT M.columnname……,N.
* columnname…..
FROM left_table M  ,  right_table N
WHERE M. columnname_join=N. columnname_join  AND 
M.columnname
=XXX….. AND N.columnname=XXX….

   备注:注意上面SQL语法中加粗的红色字体部分,三种不同连接语法的变化。

0
相关文章