解释sql语句左连接和右连接并举例
时间: 2023-11-21 08:03:33 浏览: 41
SQL中的左连接和右连接是用来连接两个表的语句,它们以不同的方式返回匹配和非匹配的行。
左连接(Left Join):左连接返回左表中的所有行,以及右表中与左表中的行匹配的行。如果右表中没有匹配的行,则返回 NULL 值。
举例来说,假设有两个表 A 和 B,它们的结构如下:
表 A:
| id | name |
|----|------|
| 1 | Tom |
| 2 | Bob |
| 3 | Ann |
表 B:
| id | age |
|----|-----|
| 1 | 20 |
| 2 | 25 |
| 4 | 30 |
使用左连接语句可以将两个表连接起来,得到以下结果:
```
SELECT A.id, A.name, B.age FROM A LEFT JOIN B ON A.id = B.id;
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Bob | 25 |
| 3 | Ann | NULL|
```
这个结果表明,左表中的所有行都被返回了,而只有右表中与左表匹配的行被返回了,如果右表中没有匹配的行,则用 NULL 值填充。
右连接(Right Join):右连接返回右表中的所有行,以及左表中与右表中的行匹配的行。如果左表中没有匹配的行,则返回 NULL 值。
继续以上面的例子,使用右连接语句可以得到以下结果:
```
SELECT A.id, A.name, B.age FROM A RIGHT JOIN B ON A.id = B.id;
| id | name | age |
|----|------|-----|
| 1 | Tom | 20 |
| 2 | Bob | 25 |
| NULL| NULL | 30 |
```
这个结果表明,右表中的所有行都被返回了,而只有左表中与右表匹配的行被返回了,如果左表中没有匹配的行,则用 NULL 值填充。