仅从连接查询返回重复值一次

时间:2013-09-26 09:43:59

标签: sql sql-server-2008 duplicates ignore-duplicates

我正在尝试根据人员工作从数据库中的表中提取信息。在一个表中,我有所有客户信息,在另一个表中由ID_no链接他们的职位和他们关联的分支。我遇到的问题是当我加入两个表时我会返回一些重复项,因为一个人可以与多个分支相关联。

我想知道如何只返回重复的值一次,因为我现在关心的是人员ID号和他们的职称是什么。

SELECT *
FROM dbo.employeeinfo AS ll
LEFT OUTER JOIN employeeJob AS lly
    ON ll.id_no = lly.id_no
WHERE lly.job_category = 'cle'

我知道Select Distinct在这种情况下不起作用,因为重复的值会返回不同的分支。 任何帮助,将不胜感激。感谢

我正在使用sql server 2008

*编辑以显示我想要的结果

------     ll.         ll.       lly.       lly.
rec_ID --employeeID---Name-----JobTitle---Branch------
1        JX100        John     cle        london      
2        JX100        John     cle        manchester  
3        JX690        Matt     89899      london      
4        JX760        Steve    12345      london      

我希望第二条记录不显示,因为我对分支不感兴趣。我只需要知道员工ID和他的职位,但由于表格的结构如何,它会两次返回JX100,因为他被记录为在两个不同的分支机构工作

1 个答案:

答案 0 :(得分:1)

您必须使用SELECT DISTINCT并指定您只需要人员ID号和职位。

我不确切知道你的字段名称,但我认为这样的事情可以起作用。

SELECT DISTINCT ll.id_no AS person_id_number,
    lly.job AS person_job
FROM dbo.employeeinfo AS ll LEFT OUTER JOIN 
    employeeJob AS lly ON ll.id_no = lly.id_no
WHERE lly.job_category = 'cle'