当前位置: Oracle DBA培训网-优技培训 >> MySQL培训 > MySQL培训教程 >

MySQL考试内容:select左连接查询用法

MySQL考试内容:select左连接查询用法

MySQL考试内容:select左连接查询用法,左连接:全连接给出FROM子句中所有表都有匹配的行。对于左连接,不仅匹配类似前面的行记录,而且还显示左边的表有而右边的表中无匹配的行。

对于这样的行,从右边表选择的列均被显示为NULL。这样,每一匹配的行都从左边的表被选出,而如果右边表有一个匹配的行,则被选中,如果不匹配,行仍然被选中,不过,其中右边相应的列在结果集中均设为NULL。即,LEFT JOIN强制包含左边表的每一行,而不管右边表是否匹配。

语法:SELECT FROM table_reference LEFT JOIN table_reference ON conditional_expr

其中table_reference为连接的表,ON子句后接类似WHERE子句的条件。

下面我们详细讲述左连接的使用:

·首先,返回一个全连接的结果集:

mysql> SELECT * FROM first,last;

+------+------------+------+-----------+

| id | first_name | id | last_name |

+------+------------+------+-----------+

| 1 | Tom | 2 | Stone |

| 2 | Marry | 2 | Stone |

| 3 | Jarry | 2 | Stone |

| 1 | Tom | 3 | White |

| 2 | Marry | 3 | White |

| 3 | Jarry | 3 | White |

| 1 | Tom | 4 | Donald |

| 2 | Marry | 4 | Donald |

| 3 | Jarry | 4 | Donald |

+------+------------+------+-----------+

注意上面的结果,下面的例子要与这个例子对照。

·我们在给出一个限制条件的查询:

mysql> SELECT * FROM first,last WHERE first.id=last.id;

+------+------------+------+-----------+

| id | first_name | id | last_name |

+------+------------+------+-----------+

| 2 | Marry | 2 | Stone |

| 3 | Jarry | 3 | White |

+------+------------+------+-----------+

这个结果类似于是从上一个全连接中选择出first.id>last.id 的行。

现在我们给出一个真正的左连接的例子,你可以仔细观察它的结果,要了解检索的记录顺序:

mysql> SELECT * FROM first LEFT JOIN last ON first.id=last.id;

+------+------------+------+-----------+

| id | first_name | id | last_name |

+------+------------+------+-----------+

| 1 | Tom | NULL | NULL |

| 2 | Marry | 2 | Stone |

| 3 | Jarry | 3 | White |

+------+------------+------+-----------+

上面的结果,即用左边表的每一行与右边表匹配,如果匹配,则选择到结果集中,如果没有匹配,则结果集中,右边表相应的列置为NULL。

技术沙龙MORE+

Oracle技术沙龙:【数据保护顶尖技术-MAA】首次全国首播12c MAA技术 云数据库加上MAA技术组成最豪华的技...
Oracle技术沙龙第49期:【Oracle 数据库云技术分享】Oracle技术沙龙第49期:【Oracle 数据库云技术分享】本次技术沙...
Oracle技术沙龙第48期:【Oracle 12c RAC安装】小编:今天讲什么内容呢?以后有什么用呢? 大师:今天讲的是12c...
我要参加技术沙龙

关闭