您的位置:首页 > 博客中心 > 数据库 >

MySQL的left on 【zt】

时间:2022-03-10 18:08

Select * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) php开源嘛

这个语句的执行结果和下面语句其实是一样的:

Select * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)

ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)

这两个例子不仅让我们了解了MySQL中table_factor和table_reference含义,同时能理解一点CROSS JOIN的用法,我要补充的是在MySQL现有版本中CROSS JOIN的作用和INNER JOIN是一样的(虽然在SQL Standard中是不一样的,然而在MySQL中他们的区别仅仅是INNER JOIN需要附加ON参数的语句,而CROSS JOIN不需要)。

既然说到了ON语句,那就解释一下吧,ON语句其实和Where语句功能大致相当,只是这里的ON语句是专门针对联结表的,ON语句后面的条件的要求和书写方式和Where语句的要求是一样的,大家基本上可以把ON当作Where用。

大家也许也看到了OJ table_reference LEFT OUTER JOIN table_reference这个句子,这不是MySQL的标准写法,只是为了和ODBC的SQL语法兼容而设定的,我很少用,Java的人更是不会用,所以也不多解释了。

 

 

注释:注意红色部分,如果把红色部分变为Select * FROM t1 LEFT JOIN t2, t3, t4 ON t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c 则会出错。不知道什么原因

MySQL的left on 【zt】,布布扣,bubuko.com

热门排行

今日推荐

热门手游