mysql中的on

左右连接是一个性质所以我这里以左连接为例,写了一个小例子:

用到连接的时候on会常用到,

on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

简单解释就是假设两个表A、B。

以A表为左,B表为右。

如果是ON A.key = B.key,如果符合条件那么B表的内容也会列出来

如果不符合条件 那么A表的属性会显示,但是B表的内容就全部显示为NULL

可以把我的代码复制一下试试,我的建表方式比较蠢花了很长时间。你萌可以自己采用自己的方式

mysql> create table demo1(
    -> id int,
    -> name varchar(10),
    -> pwd varchar(9));
Query OK, 0 rows affected (1.28 sec)

mysql> create table demo2(
    -> son int,
    -> em varchar(9),
    -> name varchar(10),
    -> pwd varchar(8));
Query OK, 0 rows affected (1.56 sec)

mysql> insert into demo1 values(1,"hj","hj");
Query OK, 1 row affected (0.09 sec)

mysql> insert into demo1 values(2,"hx","hx");
Query OK, 1 row affected (0.11 sec)

mysql> insert into demo1 values(3,"zzd","zzd1");
Query OK, 1 row affected (0.11 sec)

mysql> insert into demo2 values(1,"zz","zz123","zzd");
Query OK, 1 row affected (0.15 sec)

mysql> insert into demo2 values(2,"hh","hh123","HH");
Query OK, 1 row affected (0.11 sec)

mysql> insert into demo2 values(3,"HIAHIA","hj","hx");
Query OK, 1 row affected (0.15 sec)

mysql> select s.*,d.* from demo1 s LEFT JOIN demo2 d ON s.name = d.name;
+------+------+------+------+--------+------+------+
| id   | name | pwd  | son  | em     | name | pwd  |
+------+------+------+------+--------+------+------+
|    1 | hj   | hj   |    3 | HIAHIA | hj   | hx   |
|    2 | hx   | hx   | NULL | NULL   | NULL | NULL |
|    3 | zzd  | zzd1 | NULL | NULL   | NULL | NULL |
+------+------+------+------+--------+------+------+
3 rows in set (0.01 sec)

mysql>

点击并拖拽以移动

posted @ 2020-03-22 22:33  何止(h3zh1)  阅读(5641)  评论(0编辑  收藏  举报