姓名表关联出所有人的姓氏
时间: 2024-03-08 16:46:23 浏览: 26
假设有一个 `people` 表,其中包含人的姓名和其他信息。你可以使用以下SQL查询来查找所有人的姓氏:
```
SELECT DISTINCT SUBSTR(name, 1, INSTR(name, ' ')-1) AS last_name
FROM people;
```
这将返回一个包含所有不重复姓氏的列表,其姓氏从每个人的完整姓名中提取。此查询假设每个人的姓名中只包含一个空格,姓氏在空格之前。如果你的数据中存在其他情况,可能需要对查询进行调整。
相关问题
excel 如何关联两张表的姓名和电话号码 详细说明
要关联两张表的姓名和电话号码,需要使用Excel中的“VLOOKUP”函数。具体操作步骤如下:
1. 先在一个表格中,将所有人的姓名和电话号码输入,例如在表格1中输入姓名和电话号码数据。
2. 在另一个表格中输入需要关联的姓名数据,例如在表格2中输入需要关联的姓名数据。
3. 在表格2中,增加一列用来显示电话号码数据,可以在表格2中的任意一个空单元格输入以下公式:
```
=VLOOKUP(A2,Sheet1!$A$2:$B$100,2,FALSE)
```
这个公式的意思是,在Sheet1中找到A2单元格的值,然后在Sheet1的$A$2:$B$100区域内寻找这个值,返回该值所在行的第二列(即电话号码列)的值,如果找不到精确匹配的值,则返回#N/A.
其中,$A$2:$B$100为要关联的表格的数据区域,2代表关联列为第二列(电话号码列),FALSE表示要求匹配的值是精确匹配。
4. 对于表格2中的所有需要关联的姓名数据,都复制公式至对应单元格即可。
通过这样的方式,就可以将两张表的姓名和电话号码关联起来了。
sql多表关联查询left join inner join
SQL中的多表关联查询可以使用LEFT JOIN和INNER JOIN两种方式实现。其中,LEFT JOIN会返回左表中所有记录以及右表中与左表匹配的记录,如果右表中没有匹配的记录,则返回NULL值;而INNER JOIN则只会返回左右表中都有匹配的记录。
例如,假设我们有两个表A和B,它们的结构如下:
表A:
id name
1 Alice
2 Bob
3 Charlie
表B:
id age
1 20
3 30
4 40
如果我们要查询每个人的姓名和年龄,可以使用LEFT JOIN语句:
SELECT A.name, B.age
FROM A LEFT JOIN B ON A.id = B.id;
这条语句会返回以下结果:
name age
Alice 20
Bob NULL
Charlie 30
可以看到,Bob在表B中没有对应的记录,因此返回了NULL值。
如果我们使用INNER JOIN语句,则只会返回左右表中都有匹配的记录:
SELECT A.name, B.age
FROM A INNER JOIN B ON A.id = B.id;
这条语句会返回以下结果:
name age
Alice 20
Charlie 30