Sql server SQL查询从两个不同的数据库对象获取数据

Sql server SQL查询从两个不同的数据库对象获取数据,sql-server,Sql Server,我是一个非常深入的SQL查询的初学者,除了简单的查询之外,还需要更多地管理服务器端而不是数据库端,因此非常感谢这里的任何帮助 我有一个用于票务系统的数据库,我需要从两个不同的对象获取数据,并将结果合并到结果中 看起来像这样: +Prof1 - Columns *AssignedTech (tech assigned task) *Matters (unique matter ID) *Type (open, closed, development etc.)

我是一个非常深入的SQL查询的初学者,除了简单的查询之外,还需要更多地管理服务器端而不是数据库端,因此非常感谢这里的任何帮助

我有一个用于票务系统的数据库,我需要从两个不同的对象获取数据,并将结果合并到结果中

看起来像这样:

+Prof1
  - Columns
     *AssignedTech (tech assigned task)
     *Matters (unique matter ID)
     *Type (open, closed, development etc.)

+Matters
  - Columns
      *MatterNumber
SELECT   A.*, B.MatterNumber
FROM     Prof1 A, Matters B
WHERE    A.Matters = B.MatterNumber AND A.Type like 'open%'
ORDER BY A.Matters;
我试图做的是将问题编号输入如下查询,但不知道其他问题,然后可能将结果转储到Excel并从中过滤,以将数据输入此查询。DBO中的物质对应于上面提到的唯一物质ID。如果我可以运行下面的查询,然后使用这些结果来查询Matters DBO,从而获得mattern ID

select * 
from AssignedTech
where Type like 'open%'
order by Matters

我相信你想做的就是加入SQL!(我假设Prof1表中的MatterNumber列是对MatterNumber表的引用)

因此,要进行连接,必须编写如下查询:

+Prof1
  - Columns
     *AssignedTech (tech assigned task)
     *Matters (unique matter ID)
     *Type (open, closed, development etc.)

+Matters
  - Columns
      *MatterNumber
SELECT   A.*, B.MatterNumber
FROM     Prof1 A, Matters B
WHERE    A.Matters = B.MatterNumber AND A.Type like 'open%'
ORDER BY A.Matters;

希望这有帮助(同时,我也正确理解你)

Mureinik,我希望我能发布一个截图,但希望这有帮助。DB的部分基本上是这样的


matters是否有id列?Mureinik第一个表(Prof1)matters是该Prof1表下的一列,其中第二个Mattern是一个表,MatterNumber是该matters表下的一列。希望这是有意义的,你能分享一些样本数据和你想得到的这个样本的结果吗?这可能会使问题更容易理解,我在下面贴了一个例子,但我想得到的是,如果它首先是打开的,那么它会被查询到,否则不包括(来自dbo.Prof1表中的type列),如果是,那么它会显示问题(dbo.Prof1表下Matters列中的唯一编号)MatterNumber(来自dbo.Matters表下的MatterNumber列)MatterNumber(来自表Matters)和Mattern(来自表Prof1)在语义上相等??(我的意思是两者都是物质ID)?谢谢卡里托斯,我不确定我是否理解你这里的意思。我第一次选择并命名了两个表,但在where上迷失了方向。如何区分Prof1表中的Matter列输出和MatterNumber表中的MatterNumber列输出?我猜这就是让我不高兴的原因。一点解释。。。当您从Prof1编写
时,Matters
在表之间进行笛卡尔积,这意味着如果Prof1有3条记录,Matters有两条记录。。。您的select查询将以6条记录结束(将Prof1的每条记录与事件的每条记录相结合)。。。然后,where子句生成一个过滤器。。。它说,从笛卡尔积中,只选择Prof1.Matters列与Matters.MattersNumber匹配的那些。。。然后,select从笛卡尔乘积中选取所有列