SQL: join on条件存在null值

mysql> desc t1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| addr  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> select * from t1;
+------+------+
| id   | name |
+------+------+
| NULL | kk   |
|    2 | as   |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t2;
+------+------+
| id   | addr |
+------+------+
| NULL | ss   |
|    1 | ss   |
| NULL | ssl  |
+------+------+
3 rows in set (0.00 sec)

mysql> select a.id,a.name,b.id,b.addr from t1 a left join t2 b on a.id=b.id;
+------+------+------+------+
| id   | name | id   | addr |
+------+------+------+------+
| NULL | kk   | NULL | NULL |
|    2 | as   | NULL | NULL |
+------+------+------+------+
2 rows in set (0.00 sec)

mysql> select a.id,a.addr,b.id,b.name from t2 a left join t1 b on a.id=b.id;
+------+------+------+------+
| id   | addr | id   | name |
+------+------+------+------+
| NULL | ss   | NULL | NULL |
|    1 | ss   | NULL | NULL |
| NULL | ssl  | NULL | NULL |
+------+------+------+------+
3 rows in set (0.00 sec)

mysql> select a.id,a.name,b.id,b.addr from t1 a inner join t2 b on a.id=b.id;
Empty set (0.00 sec)

mysql> select a.id,a.name,b.id,b.addr from t1 a join t2 b on a.id=b.id;
Empty set (0.00 sec)

mysql> 

版权声明:本文为u011095039原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。