首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接表时,将从Server返回重复数据

连接表时,将从Server返回重复数据
EN

Stack Overflow用户
提问于 2013-09-10 12:23:21
回答 3查看 88关注 0票数 1

我有一张这样的桌子:

Email_tbl

代码语言:javascript
复制
plcid       Ecode
----------- -----------
23          001646
24          001646
25          E004
25          2274
25          2208
25          1868

我有另一张桌子Employee

代码语言:javascript
复制
Ecode   Ename
E004     jaseem
2274     jasir
2208      deepu
1868       rupa
001646     shafeer

我想得到Ename of plcid=25,所以我在这里使用这个查询:

代码语言:javascript
复制
SELECT em.Ename
FROM dbo.Email_tbl e
JOIN dbo.EmployeeMaster_tbl em ON em.Ecode IN (SELECT Ecode
                                               FROM Email_tbl
                                               WHERE plcid = 25)

但我的结果出了问题。我的问题出什么问题了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-10 12:27:42

代码语言:javascript
复制
SELECT  em.Ename
FROM    dbo.Email_tbl e
        JOIN dbo.EmployeeMaster_tbl em ON em.Ecode = e.ECode
WHERE e.plcid = 25 
票数 7
EN

Stack Overflow用户

发布于 2013-09-10 12:30:48

你为什么要加入这些桌子?为什么有三个答案“修复”一个不必要的连接?

代码语言:javascript
复制
SELECT em.Ename
FROM dbo.EmployeeMaster_tbl em
WHERE em.Ecode IN (SELECT Ecode
                   FROM Email_tbl
                   WHERE plcid = 25)
票数 2
EN

Stack Overflow用户

发布于 2013-09-10 12:28:04

代码语言:javascript
复制
    SELECT emp.Ename
    FROM Email_tbl e INNER JOIN Employee emp ON (e.Ecode = emp.Ecode)
    WHERE e.plcid = 25

这将导致多行,因为Employee中的多行具有PLCID = 25的Ecode

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

https://stackoverflow.com/questions/18718884

复制
相关文章

相似问题

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