AdventureWorks SQL冲突的结果问题
问题描述:
我正在使用AdventureWorks示例数据库 - 我们正在运行SQL Server 2008R2,因此我假设这是AdventureWorks的版本(我拥有只读访问权限)。我试图获得一份销售经理名单,以便我可以确定一对夫妇与经理的关系。 我得到两组三名不同名字的人,他们的职位名称相同,CurrentFlag设置为1(有效),查询略有不同。我注意到一个结果组具有相同的contactID和employeeID,但我不确定这可能表示什么。AdventureWorks SQL冲突的结果问题
所以问题是:为什么我得到完全不同的结果与这两个queires?我想我会得到六个结果 - 查询匹配员工表标题。
-
SQL查询1:
select c.FirstName, c.LastName, c.ContactID, e.EmployeeID, e.Title, c.Title, e.CurrentFlag from Person.Contact c inner join HumanResources.Employee e on c.ContactID = e.ContactID where e.Title like '%Sales Manager%'
-
SQL查询2:
SELECT e.EmployeeID, (c.FirstName + ' ' + c.LastName) as 'First Name and Last Name', e.Title FROM HumanResources.Employee e INNER JOIN Person.Contact c ON e.EmployeeID = c.ContactID Where e.Title LIKE '%Manager%' AND e.Title LIKE '%Sales%' ORDER BY e.EmployeeID;
UPDATE:这是我的结果:
-
SQL查询1:
------- ------- ---- --- ---------------------------- ---- -- Stephen Jiang 1011 268 North American Sales Manager NULL 1 Amy Alberts 1013 284 European Sales Manager NULL 1 Syed Abbas 1012 288 Pacific Sales Manager Mr. 1
-
SQL查询2:
--- --- ----------- ---------------------------- --- -- 268 268 Gary Drury North American Sales Manager Mr. 1 284 284 John Emory European Sales Manager Mr. 1 288 288 Julie Estes Pacific Sales Manager Ms. 1
答
唯一diffrents我能看到的是这样的:
where
e.Title like '%Sales Manager%'
而且这样的:
Where
e.Title LIKE '%Manager%'
AND
e.Title LIKE '%Sales%'
第一个查询说,让我有'%Sales Manager%'
所有的标题,你可以有恩这样的输出:
Account Sales Manager
some Sales Manager
Sales Manager something else
第二个问题说,把我的一切,有'%Manager%
标题“和'%Sales%'
所以你可以为前有:
Sales Account Manager
some Sales some Manager some
Sales Manager some else thing
Manager Sales
而这种连接不能corrent
INNER JOIN Person.Contact c
ON e.EmployeeID = c.ContactID
难道你我an:
INNER JOIN Person.Contact c
ON e.ContactID= c.ContactID
答
第一个查询将匹配子字符串“Sales Manager”存在的行。但第二个可以匹配像“销售部经理”这样的行。我的意思是第二个不关心srting中单词的位置。
我相信第一个查询的结果是第二个结果的一个子集。
UPDATE 您在JOIN子句中使用了不同的列,所以正常情况下会得到不同的结果。
2个查询看起来是一样的...... – 2012-04-06 16:31:48
是的,抱歉,我没有意识到我在本地复制了一个,而另一个在RDC上......更新了。 – Volvox 2012-04-06 16:32:25
如果您添加了2个表格的定义(所以我们看到FK),这很有帮助,但很明显,您为什么会得到不同的结果。 “ON”条款是不同的。 – 2012-04-06 16:35:48