SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
现有两张表:
tcount_tbl表
数据:
runoob_author | runoob_count |
菜鸟教程 | 10 |
RUNOOB.COM | 20 |
22 |
runoob_tbl表
数据:
runoob_id | runoob_title | runoob_author | submission_date |
1 | 学习 PHP | 菜鸟教程 | 2017-04-12 |
2 | 学习 MySQL | 菜鸟教程 | 2017-04-12 |
3 | 学习 Java | RUNOOB.COM | 2015-05-01 |
4 | 学习 Python | RUNOOB.COM | 2016-03-06 |
5 | 学习 C | FK | 2017-04-05 |
1.INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:
INNER JOIN示意图:
2.LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
以 runoob_tbl 为左表,tcount_tbl 为右表,理解 MySQL LEFT JOIN 的应用:
3.RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。
以 runoob_tbl 为左表,tcount_tbl 为右表,理解MySQL RIGHT JOIN的应用: