各位用户为了找寻关于mysql连接查询(左连接,右连接,内连接)的资料费劲了很多周折。这里教程网为您整理了关于mysql连接查询(左连接,右连接,内连接)的相关资料,仅供查阅,以下为您介绍关于mysql连接查询(左连接,右连接,内连接)的详细内容

一、mysql常用连接

INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 mysql> select * from name_address; +----------+------+----+ | address | name | id | +----------+------+----+ | 西北一路 | 张三 | 1 | | 西北二路 | 李四 | 2 | | 西北三路 | 王五 | 3 | +----------+------+----+ 3 rows in set   mysql> select * from name_age; +-----+--------+----+ | age | name  | id | +-----+--------+----+ | 18 | 张三  | 1 | | 20 | 王五  | 2 | | 21 | 路人甲 | 3 | +-----+--------+----+ 3 rows in set

1、INNER JOIN

INNER JOIN与一般的连表查询一致,即使用逗号隔开的查询方式。

? 1 2 3 4 5 6 7 8 mysql> SELECT a.`name`,a.age,b.address FROM name_age a INNER JOIN name_address b WHEREon) a.`name`=b.`name`; +------+-----+----------+ | name | age | address | +------+-----+----------+ | 张三 | 18 | 西北一路 | | 王五 | 20 | 西北三路 | +------+-----+----------+ 2 rows in set

2、LEFT JOIN

以左边的数据表为准

? 1 2 3 4 5 6 7 8 9 10 mysql> SELECT a.`name`,a.age,b.address FROM name_age a left JOIN name_address b on  a.`name`=b.`name`; +--------+-----+----------+ | name  | age | address | +--------+-----+----------+ | 张三  | 18 | 西北一路 | | 王五  | 20 | 西北三路 | | 路人甲 | 21 | NULL   | +--------+-----+----------+ 3 rows in set

3、RIGHT JOIN

与LEFT JOIN相反,即以右边的数据为准

? 1 2 3 4 5 6 7 8 9 mysql> SELECT b.`name`,a.age,b.address FROM name_age a right JOIN name_address b on a.`name`=b.`name`; +------+------+----------+ | name | age | address | +------+------+----------+ | 张三 | 18  | 西北一路 | | 王五 | 20  | 西北三路 | | 李四 | NULL | 西北二路 | +------+------+----------+ 3 rows in set

以上就是MySQL 连接查询的资料整理,大家如有疑问可以留言讨论,共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/u013755987/article/details/53648740