mysql连接查询
在MySQL数据库查询中,经常会使用到多表查询,本篇介绍mysql中的内连接,左连接,右连接。
用作备忘。
使用两个简单的数据表做展现。
表A
Aid | Avalue |
---|---|
1 | a001 |
2 | a002 |
3 | a003 |
4 | a004 |
5 | a005 |
表B
Bid | Bvalue |
---|---|
1 | b001 |
2 | b002 |
3 | b003 |
4 | b004 |
6 | b006 |
内连接(INNER JOIN)
- 基本语法
SELECT column1, column2, ...
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
- 示例
SELECT *
FROM A
INNER JOIN B ON A.Aid = B.Bid;
根据查询结果可知,INNER JOIN返回两个表中满足连接条件的匹配行,即两表同时满足ON条件的才会被展示。
左连接(LEFT JOIN)
- 基本语法
SELECT column1, column2, ...
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;
- 示例
SELECT *
FROM A
LEFT JOIN B ON A.Aid = B.Bid;
根据查询结果可知,左连接以左表A为准,返回所有行,右表B没有满足ON条件的会补Null项。
右连接(RIGHT JOIN)
与左连接类似,左连接能做的事,右连接也能做,日常使用中,只是看顺手喜欢用哪种。
- 基本语法
SELECT column1, column2, ...
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
- 示例
SELECT *
FROM A
RIGHT JOIN B ON A.Aid = B.Bid;
可以看到,此时就是以右表B为主,返回所有数据,左表A不满足条件的补Null。