【发布时间】:2013-09-19 15:29:45
【问题描述】:
您好,我知道 SQL,但是当我遇到一个无法在线找到解决方案的特定问题时,我正在通过连接工作。
我正在使用 Microsoft SQL Server Management Studio。我有两张表需要加入。
工作表
一个 Job_Matches 表。
jobs 表中有一个包含 10 个工作的列表,而在 job_matches 表中有一个包含 60 个左右与这些工作匹配的人的列表。所以我想在一列中列出工作以及与之匹配的人数。 我使用了以下查询
Select
Jobs.Id , count(Job_Matches.Job_id)
From
Jobs, Job_Matches
where
Jobs.Id = Job_Matches.job_id
group by (Jobs.id);
表匹配 Jobs.ID 和 Job_Matches.Job_Id
它做了我想要的,除了它忽略了任何与它匹配的人为零的工作。所以我得到了一个包含 7 个工作的列表,第二列中每个工作的匹配数。
这是有道理的,因为它只匹配 id 相等的地方,如果没有人与作业匹配,则 id 不会出现在第二个表中。
所以我想知道在查询中是否可以这样说:
if(Jobs.ID not in Job_Matches 默认为零) 或类似的东西。
感谢阅读。
【问题讨论】:
标签: sql sql-server outer-join