SQL左连接查出的表,某一列求唯一值

在进行SQL查询时,左连接是常用的连接操作之一。左连接可以帮助我们从两个或多个表中检索符合指定条件的数据,同时保留左边表中的所有记录,即使右边表的数据可能不存在。
在本文中,我们将详细探讨如何进行SQL左连接操作,以及如何从左连接的结果中提取某一列的唯一值。
SQL左连接
SQL左连接是一种查询方式,它会返回左表中的所有数据,同时还会返回右表中满足连接条件的数据。如果右表中的某些记录没有匹配项,那么将返回NULL值。
以下是SQL左连接的基本语法示例:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
在上面的语法中,我们首先指定要查询的列,然后指定要左连接的两个表,最后使用ON关键字指定连接条件。
示例数据
为了演示SQL左连接操作,我们假设有两个表table1和table2,它们的数据如下:
table1
| id | name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Eve |
table2
| id | salary |
|---|---|
| 1 | 5000 |
| 2 | 6000 |
| 4 | 7000 |
左连接示例
现在,我们将使用上面提到的示例数据,进行一个简单的SQL左连接操作,查询出所有员工的ID、姓名和工资,如果该员工没有工资数据,则显示为NULL。
SELECT t1.id, t1.name, t2.salary
FROM table1 t1
LEFT JOIN table2 t2
ON t1.id = t2.id;
运行以上SQL语句后,将得到如下结果:
| id | name | salary |
|---|---|---|
| 1 | Alice | 5000 |
| 2 | Bob | 6000 |
| 3 | Eve | NULL |
从结果中可以看出,我们成功地使用左连接操作查询出了所有员工的ID、姓名和工资数据,其中员工Eve的工资数据为NULL,因为员工Eve在table2表中没有对应的记录。
求某一列的唯一值
在实际的数据分析中,经常需要对某一列的值进行统计,从而了解该列的唯一值有哪些。对于某一列的唯一值的查找,我们可以使用DISTINCT操作符。
假设我们希望查询出员工表table1中所有不同的名字,可以按照以下方式进行操作:
SELECT DISTINCT name
FROM table1;
运行以上SQL语句后,将得到员工表table1中所有不同的名字:
| name |
|---|
| Alice |
| Bob |
| Eve |
结论
通过本文的介绍,我们学习了SQL左连接操作的基本语法以及如何从左连接的结果中提取某一列的唯一值。左连接可以帮助我们查找两个或多个表之间的关联信息,而DISTINCT操作符可以帮助我们快速找出某一列的唯一值。
极客教程