Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据外部表中的内容选择SQL表内容_Sql_Sql Server_Foreign Keys - Fatal编程技术网

根据外部表中的内容选择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
             );