首页 > 数据库 >SQL 查找所有员工的last_name和first_name以及对应的dept_name

SQL 查找所有员工的last_name和first_name以及对应的dept_name

时间:2024-07-03 21:28:24浏览次数:27  
标签:JOIN name no dept emp last LEFT

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
有一个员工表employees简况如下:
在这里插入图片描述
有一个部门表departments表简况如下:
在这里插入图片描述
有一个,部门员工关系表dept_emp简况如下:
在这里插入图片描述
请你查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工,以上例子输出如下:
在这里插入图片描述
方法1:先内连接departments表和dept_emp表形成新表b,再左连接employees表和b表

SELECT e.last_name, e.first_name, b.dept_name
FROM employees AS e
LEFT JOIN (SELECT *
FROM departments AS d
INNER JOIN dept_emp AS de
ON d.dept_no=de.dept_no
) AS b
ON e.emp_no=b.emp_no;

方法2:两次LEFT JOIN嵌套

SELECT last_name, first_name, dept_name
FROM (SELECT *
FROM employees
LEFT JOIN dept_emp
ON employees.emp_no=dept_emp.emp_no
) AS a
LEFT JOIN departments
ON a.dept_no=departments.dept_no;

SELECT em.last_name, em.first_name, dp.dept_name
FROM (employees AS em
LEFT JOIN dept_emp AS de
ON em.emp_no = de.emp_no)
LEFT JOIN departments AS dp
ON de.dept_no = dp.dept_no

注意:方法2中的2种子方法,主表是不同的。子方法1必须用AS a进行重命名,而且外面不能引用主表a中的连接子表employees或dept_emp。而子方法2的外面则可以引用主表中的连接子表。

方法3:两次LEFT JOIN连接

SELECT last_name, first_name, dept_name
FROM employees
LEFT JOIN dept_emp ON employees.emp_no=dept_emp.emp_no
LEFT JOIN departments ON dept_emp.dept_no=departments.dept_no;

标签:JOIN,name,no,dept,emp,last,LEFT
From: https://blog.csdn.net/pleaseprintf/article/details/140112865

相关文章

  • Elasticsearch
    一、es客户端-kibana 没有数据库概念,只有索引索引=表 建索引:建空索引(空表):PUTxxx注意:如果没有设置表字段类型,则会默认类型 查询所有:GETxxx/_search{"query":{"match_all":{}}} 统计:GET/xxx/_count 模糊匹配:GETxxx/_search{"query":{"match_......
  • ElasticSearch不区分字母大小写搜索
    0、停止使用该索引的服务(避免新加了数据没备份)1、备份filesearch索引(检查备份的索引和原索引数据条数是否一致)1POSThttp://127.0.0.1:9200/_reindex2{3"source":{4"index":"filesearch"5},6"dest":{7"index":"......
  • Elasticsearch集群部署(上)
    目录前言一.环境准备二.实施部署三. 安装配置head监控插件(只在第一台es部署)四.Kibana部署(当前还是在第一台es部署)五. 安装配置Nginx反向代理六. Logstash部署与测试前言1.Elasticsearch:  是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大......
  • Elasticsearch架构基本原理
    Elasticsearch的架构原理可以详细分为以下几个方面进行介绍:一、Elasticsearch基本概念Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索和分析引擎。它支持全文搜索、结构化搜索、半结构化搜索、数据分析、地理位置和对象间关联关系搜索等功能。ES使用Ja......
  • Nanami and the Last Enigma (hard version)
    如果从前缀和的视角考察题目中需要统计的信息,那么子段和=x等价于s[r]-s[l-1]=x于是我们虽然不能O(1)地求出w(l,r),但是可以O(1)地将已知的w(l,r)扩展w(l,r)是一个非常明显的满足“包含大于等于交叉”的四边形不等式的函数,除此之外,通过打表找规律,也可以发现DP有决策单调性决策单......
  • Elasticsearch:Painless scripting 语言(二)
    这是继上一篇文章“Elasticsearch:Painlessscripting语言(一)”的续篇。使用field API访问文档中的字段警告:FieldAPI仍在开发中,应视为测试版功能。API可能会发生变化,此迭代可能不是最终状态。有关功能状态,请参阅#78920。使用field API访问文档字段:field('my_......
  • 使用不同函数打印torch.nn模型——print(model),named_children(),named_modules():
    创建模型创建一个具有三级嵌套的模型,结构如图:importtorchimporttorch.nnasnn#定义子子模块classSubSubModule(nn.Module):def__init__(self):super(SubSubModule,self).__init__()self.conv=nn.Conv2d(3,3,kernel_size=3,padding=1)......
  • Gradle Core Plugins (plugin is not in ‘org.gradle‘ namespace)
    记录一个由gradle构建项目遇到的问题:起因:项目原先运行正常,不过个人移动了工程的目录位置,导致出现以下错误GradleCorePlugins(pluginisnotin'org.gradle'namespace)-PluginRepositories(couldnotresolvepluginartifact'com.android.application:com.androi......
  • OPenFast中AeroDyn,ElastoDyn,ElastoDyn_Tower,ServoDyn的作用!
    在OpenFAST中,这四个文件分别有不同的作用,它们用于定义风力涡轮机不同部分的特性和行为。以下是每个文件的总结及其作用:NRELOffshrBsline5MW_Onshore_AeroDyn15.dat作用:这是AeroDyn模块的输入文件,用于定义风力涡轮机的空气动力学特性。内容:包括风力涡轮机叶片的空气动力......
  • Depth Anything环境搭建&推理测试
    ​引子基于单目摄像头的深度估计,一直是CV领域的一个难点,之前也对此关注也不够多。偶然浏览技术博客,看到DepthAnything:UnleashingthePowerofLarge-ScaleUnlabeledData这个最新CVPR2024的工作。看到名字,大概也能猜出来这篇是致敬SegmentAnything(之前也分享过一篇这个主题......