MySql数据库常用指令(五)多表连接
实际应用中,我们常常要连接几个不同的MySQL表,因此在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT
JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN
注:文中TEST为测试所用数据库,根据实际应用修改
一、内连接,或等值连接
获取两个表中字段匹配关系的记录。
INNER JOIN
mysql> SELECT a.id, a.author, b.count FROM test1_tbl a INNER JOIN test2_tbl b ON a.author = b.author;
注:有表test1和表test2,test1表(id,author,time),test2表(author,count)
注:此语句意思为:将两表值分别用a、b区分,读取所有test1表author在test2表上对应的count字段值,并且展示(a.id,a.author,b.count)
等价于:
WHERE 子句
mysql> SELECT a.id, a.author, b.count FROM test1_tbl a, test2_tbl b WHERE a.author = b.author;
二、左连接
获取左表所有记录,即使右表没有对应匹配的记录。
mysql> SELECT a.id, a.author, b.count FROM test1_tbl a LEFT JOIN test2_tbl b ON a.author = b.author;
注:该语句会读取左边的数据表 test1_tbl 的所有选取的字段数据,即使在右侧表 test2_tbl中 没有对应的 author 字段值。
三、右连接
与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
mysql> SELECT a.id, a.author, b.count FROM test1_tbl a RIGHT JOIN test2_tbl b ON a.author = b.author;