sql - 如何使用 SQL INNER JOIN 两个表中的条件数据

标签 sql sql-server azure

我有两张 table ;

其中包含一列 ENTITYID 和一列表示作业是否为全职(1 为全职)。

另一个表包含匹配的 ID 和一列,说明这些职位所在的国家/地区。

我的任务是查找表 1 中的所有全职工作,然后使用该信息从表 2 中查找它们所在的国家/地区。但对于第二部分,它需要计算每个国家的就业数量。 IE。 10 个日本、5 个美国、2 个英国。不是日本、日本、日本等。

到目前为止我所拥有的:

SELECT entityid FROM dbo.Jobs WHERE contracthours = 1;

这将返回所有全职 (= 1) 的职位 ID (entityid)。但是我现在如何获取这些数据并使用它在第二个表中查找它们。

在表2中:

SELECT COUNT(ID), ISNULL(country, 'No Country')
FROM dbo.JobLocations
GROUP BY Country;

这将返回包含每个作业计数的作业,并将没有关联国家/地区的作业替换为“无国家/地区”(我的任务要求的一部分)。

我需要做的是从 table1 上的第一个查询中获取内容,并以某种方式 INNER JOIN 它并返回类似于 table2 上使用的第二个查询的结果。

编辑:我应该注意到 table1 中的 ENTITYID 等于 table2 中的 JOBID

一些视觉效果,第一张图片显示 table1 ID 和契约(Contract)时间(1 是全职),第二张图片显示 table2 ID 和相关国家/地区。

Table1

table2

最佳答案

SELECT COUNT(ID), ISNULL(country, 'No Country')
FROM dbo.JobLocations
where JOBID in (SELECT entityid FROM dbo.Jobs WHERE contracthours = 1)
GROUP BY Country;

关于sql - 如何使用 SQL INNER JOIN 两个表中的条件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52339624/

相关文章:

php - 在centos上使用freetds从php连接到ms sql 2005

c# - 用户代码在 for 循环中未处理 IndexOutOfRangeException

javascript - 如何从 Azure Function 返回 HTML 内容

sql - Oracle 相当于 SQL Server/Sybase DateDiff

SQL 用 Max(count(*)) 显示信息

sql - SQL Server如何从另一个数据库中选择一个表的数据?

c# - 生成 .rdlc 报告在本地有效,但在部署到 azure 后无效

azure - 云服务与网站实例共享内容和配置

多列上的 SQL 左外连接

php - 使用 3 个表帮助构建一个简单的查询