sql - SQL如何使用不同的列和连接连接两个查询
问题描述
我有 2 个查询都使用连接,从多个表中选择不同的列,这些列产生以下结果集:
companyID workType contractnumber employeenumber Value2
1 1C 9999999 111111 2547.21
1 1C 9999999 222222 863.67
1 1C 9999999 333333 2962.15
1 1C 9999999 444444 1971.61
1 1C 9999999 555555 152.41
1 1C 9999999 666666 155.90
1 1C 9999999 777777 657.20
companyID normalWorkType employeeNumber value1
1 1C 11111 1016.08
1 1C 22222 3118.05
1 1C 33333 2628.81
1 61 44444 2547.21
我希望加入这些以产生以下结果..谁能解释正确的语法是什么?
companyID normalWorkType contractnumber employeeNumber value1 Value2
1 1C 9999999 11111 1016.08 2547.21
1 1C 9999999 22222 3118.05 863.67
1 1C 9999999 33333 2628.81 2962.15
1 61 9999999 44444 2547.21 1971.61
1 1C 9999999 55555 0 152.41
1 1C 9999999 66666 0 155.90
1 1C 9999999 77777 0 657.20
上面的分组是在 companyID 和employeeNumber 上
解决方案
尝试左外连接:
SELECT t1.companyID,
t2.normalWorkType,
t1.contractnumber,
t1.employeeNumber,
coalesce(t2.value1,0) as t2.value1,
t1.value2
FROM DatabaseName.t1 AS t1 LEFT OUTER JOIN
DatabaseName.t2 AS t2 ON t1.employeenumber = t2.employeenumber
AND t1.companyID = t2.companyID
推荐阅读
- javascript - 根据屏幕大小调整的 JavaScript/CSS 关键帧动画
- r - for、while 和重复循环来查找列的平均值
- javascript - 我可以使用 Javascript 将 XML 注入 XML 文件吗?
- java - 在 if 语句中初始化最终布尔值
- flutter - 找不到参数的方法 id() [com.google.android.libraries.mapsplatform.secrets-gradle-plugin]
- mysql - MariaDB 触发器在同一张表上执行 UPDATE 和 INSERT
- python - 如何使用 plotly(python)中的按钮更新直方图 nbin?
- bash - gcloud过滤*不在文件夹中的项目+如何从文本文件中列出
- reactjs - 构建反应小部件时包裹输出“无法解决依赖关系”
- python-3.x - 计算包含矩阵的符号函数的梯度和 Hessian