各位用户为了找寻关于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 19mysql>
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 8mysql>
SELECT
a.`
name
`,a.age,b.address
FROM
name_age a
INNER
JOIN
name_address b
WHERE
(
on
) 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 10mysql>
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 9mysql>
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