left join求左边独有的数据
时间: 2023-12-02 12:41:31 浏览: 32
左连接(left join)是SQL中最常用的连接方式之一,它可以返回左表中所有的数据以及右表中与左表中数据匹配的数据。如果想要查询左表中独有的数据,可以使用左连接的另一种形式——左反连接(left anti join)。
左反连接的语法如下:
```
SELECT *
FROM table1
LEFT JOIN table2
ON table1.key = table2.key
WHERE table2.key IS NULL;
```
其中,`table1`是左表,`table2`是右表,`key`是连接条件。在`WHERE`子句中,我们筛选出右表中`key`为空的记录,这些记录就是左表中独有的数据。
举个例子,假设有两个表`t1`和`t2`,它们的结构如下:
```
t1
+----+------+
| id | name |
+----+------+
| 1 | Tom |
| 2 | Jack |
| 3 | Mary |
+----+------+
t2
+----+------+
| id | age |
+----+------+
| 1 | 20 |
| 4 | 25 |
+----+------+
```
现在我们想要查询`t1`中独有的记录,可以使用以下SQL语句:
```
SELECT *
FROM t1
LEFT JOIN t2
ON t1.id = t2.id
WHERE t2.id IS NULL;
```
执行以上SQL语句后,返回结果如下:
```
+----+------+
| id | name |
+----+------+
| 2 | Jack |
| 3 | Mary |
+----+------+
```
这里返回了`t1`中`id`为2和3的记录,这些记录在`t2`中是不存在的。