首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AdventureWorks SQL冲突结果问题

AdventureWorks SQL冲突结果问题
EN

Stack Overflow用户
提问于 2012-04-06 16:29:37
回答 2查看 461关注 0票数 1

我正在使用AdventureWorks示例DB -我们运行的是SQLServer2008R2,所以我假设这是AdventureWorks的版本(我有只读访问权限)。我试图得到销售经理的名单,这样我就可以确定几个员工/经理的关系。我得到了两组名不同的人,他们的CurrentFlag设置为1 (active),查询略有不同。我确实注意到一个结果组具有相同的contactID和employeeID,但我不确定这可能表明什么。

所以问题是:为什么我得到的结果与这两个问题完全不同?我认为每个查询都会得到6个结果--查询是匹配雇员表标题的。

  • SQL查询1:

选择c.FirstName、c.LastName、c.ContactID、e.EmployeeID、e.Title、c.Title、e.CurrentFlag从Person.Contact c内部连接HumanResources.Employee e on c.ContactID = e.ContactID,其中e.Title喜欢'%Sales %‘

  • SQL查询2:

选择e.EmployeeID,(c.FirstName +‘’+ c.LastName)作为‘名字和姓’,e.Title从HumanResources.Employee e内部连接Person.Contact c ON e.EmployeeID = c.ContactID,其中e.Title喜欢'%Manager%‘,e.Title类似'%Sales%’按e.EmployeeID;

更新:这是我的结果:

  • SQL查询1:
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 16:35:05

我能看到的唯一不同之处是:

代码语言:javascript
复制
where 
   e.Title like '%Sales Manager%'

这是:

代码语言:javascript
复制
Where 
 e.Title LIKE '%Manager%'
    AND
  e.Title LIKE '%Sales%'

第一个查询说,为ex提供所有具有'%Sales Manager%'的标题--这个输出:

代码语言:javascript
复制
Account Sales Manager
some Sales Manager
Sales Manager something else

第二个问题是,把所有有'%Manager%‘和'%Sales%'的标题都给我,这样你就可以让ex拥有:

代码语言:javascript
复制
Sales Account Manager
some Sales some Manager some 
Sales Manager some else thing
Manager Sales

这样的加入是不可能的

代码语言:javascript
复制
INNER JOIN Person.Contact c
    ON e.EmployeeID = c.ContactID

你不是说:

代码语言:javascript
复制
INNER JOIN Person.Contact c
        ON e.ContactID= c.ContactID
票数 1
EN

Stack Overflow用户

发布于 2012-04-06 16:35:19

第一个查询将匹配子字符串"Sales“存在的行。但第二种方法也可以与“销售经理”等行相匹配。我的意思是,第二个人不关心这个词的位置。

我认为第一次查询的结果是第二次查询结果的子集。

UPDATE在JOIN子句中使用不同的列,因此得到不同的结果是正常的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10046306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档