根据外部表中的内容选择SQL表内容
我有一个数据库保存着不同工作的信息。 作业可以针对内部客户,也可以针对外部客户。根据外部表中的内容选择SQL表内容,sql,sql-server,foreign-keys,Sql,Sql Server,Foreign Keys,我有一个数据库保存着不同工作的信息。 作业可以针对内部客户,也可以针对外部客户。 我需要选择表作业中的行,它指向customer中的一条记录,其中isInternal设置为true 我已尝试使用InnerJoin: select Job.* from Job as Job INNER JOIN Task as Task ON Job.JobID = Task.JobID Inner Join Customer as Customer ON Task.CustomerID = Customer
我需要选择表作业中的行,它指向customer中的一条记录,其中isInternal设置为true 我已尝试使用InnerJoin:
select Job.* from Job as Job
INNER JOIN Task as Task
ON Job.JobID = Task.JobID
Inner Join Customer as Customer
ON Task.CustomerID = Customer.CustomerID
但这样一来,我的工作就会有很多重复的工作。我也尝试使用distinct,但最终得到的行数比实际的行数少 关于如何使用sql完成这类任务,有人能给我指出正确的方向吗 最后,这将在SSIS包中使用,用于将数据加载到DWH的暂存层如果您想要任何任务都有内部客户的作业,您可以使用
exists
:
select j.*
from Job
where exists (select 1
from Task t join
Customer c
on t.CustomerID = c.CustomerID
where j.JobID = t.JobID and
c.isInternal = 1
);