MySQL表中的连接方式其实非常简单,这里就简单的罗列出他们的特点。

表的连接(JOIN)可以分为内连接(JOIN/INNER JOIN)和外连接(LEFT JOIN/RIGHT JOIN)。

首先我们看一下我们本次演示的两个表:

mysql> SELECT * FROM student;+------+----------+------+------+| s_id | s_name  | age | c_id |+------+----------+------+------+|  1 | xiaoming |  13 |  1 ||  2 | xiaohong |  41 |  4 ||  3 | xiaoxia |  22 |  3 ||  4 | xiaogang |  32 |  1 ||  5 | xiaoli  |  41 |  2 ||  6 | wangwu  |  13 |  2 ||  7 | lisi   |  22 |  3 ||  8 | zhangsan |  11 |  9 |+------+----------+------+------+8 rows in set (0.00 sec)mysql> SELECT * FROM class;+------+---------+-------+| c_id | c_name | count |+------+---------+-------+|  1 | MATH  |  65 ||  2 | CHINESE |  70 ||  3 | ENGLISH |  50 ||  4 | HISTORY |  30 ||  5 | BIOLOGY |  40 |+------+---------+-------+5 rows in set (0.00 sec)

1.内连接

mysql> SELECT * FROM student INNER JOIN class ON student.c_id = class.c_id;+------+----------+------+------+------+---------+-------+| s_id | s_name  | age | c_id | c_id | c_name | count |+------+----------+------+------+------+---------+-------+|  1 | xiaoming |  13 |  1 |  1 | MATH  |  65 ||  2 | xiaohong |  41 |  4 |  4 | HISTORY |  30 ||  3 | xiaoxia |  22 |  3 |  3 | ENGLISH |  50 ||  4 | xiaogang |  32 |  1 |  1 | MATH  |  65 ||  5 | xiaoli  |  41 |  2 |  2 | CHINESE |  70 ||  6 | wangwu  |  13 |  2 |  2 | CHINESE |  70 ||  7 | lisi   |  22 |  3 |  3 | ENGLISH |  50 |+------+----------+------+------+------+---------+-------+7 rows in set (0.00 sec)

2.外连接

mysql> SELECT * FROM student LEFT JOIN class ON student.c_id = class.c_id;+------+----------+------+------+------+---------+-------+| s_id | s_name  | age | c_id | c_id | c_name | count |+------+----------+------+------+------+---------+-------+|  1 | xiaoming |  13 |  1 |  1 | MATH  |  65 ||  2 | xiaohong |  41 |  4 |  4 | HISTORY |  30 ||  3 | xiaoxia |  22 |  3 |  3 | ENGLISH |  50 ||  4 | xiaogang |  32 |  1 |  1 | MATH  |  65 ||  5 | xiaoli  |  41 |  2 |  2 | CHINESE |  70 ||  6 | wangwu  |  13 |  2 |  2 | CHINESE |  70 ||  7 | lisi   |  22 |  3 |  3 | ENGLISH |  50 ||  8 | zhangsan |  11 |  9 | NULL | NULL  | NULL |+------+----------+------+------+------+---------+-------+8 rows in set (0.00 sec)mysql> SELECT * FROM student RIGHT JOIN class ON student.c_id = class.c_id;+------+----------+------+------+------+---------+-------+| s_id | s_name  | age | c_id | c_id | c_name | count |+------+----------+------+------+------+---------+-------+|  1 | xiaoming |  13 |  1 |  1 | MATH  |  65 ||  4 | xiaogang |  32 |  1 |  1 | MATH  |  65 ||  5 | xiaoli  |  41 |  2 |  2 | CHINESE |  70 ||  6 | wangwu  |  13 |  2 |  2 | CHINESE |  70 ||  3 | xiaoxia |  22 |  3 |  3 | ENGLISH |  50 ||  7 | lisi   |  22 |  3 |  3 | ENGLISH |  50 ||  2 | xiaohong |  41 |  4 |  4 | HISTORY |  30 || NULL | NULL   | NULL | NULL |  5 | BIOLOGY |  40 |+------+----------+------+------+------+---------+-------+8 rows in set (0.00 sec)

总结

更多相关文章

  1. Android(安卓)后台线程调用前台线程的几种方法
  2. 我今天的面试题,注册广播有几种方式,这些方式有何优缺点?请谈谈Andr
  3. Android(安卓)代码设置Color的几种方式
  4. JS判断终端类型的几种方法
  5. 查看基于Android(安卓)系统单个进程内存、CPU使用情况的几种方法
  6. Android中的几种网络请求方式详解
  7. Android实现页面跳转的几种方式(转贴)
  8. Android高手进阶教程(二十二)之---Android中几种图像特效处理的
  9. Android中的几种网络请求方式详解

随机推荐

  1. 安卓复选框(Checkbox)
  2. 安卓学习(初)第三章(3)(《第一行代码》)
  3. Android(安卓)Intent 用法汇总
  4. Android Launcher一些资源
  5. Android Studio Tips-倍数提高工作效率的
  6. android 窗口式activity
  7. Android应用开发编程规范
  8. Android(安卓)内存泄漏 - 不要用static修
  9. android 压缩图片、生成缩略图 和转换Bas
  10. android EditText TextView的属性整理 最