获取已辞职的员工的电子邮件ID

时间:2014-03-15 10:42:01

标签: mysql linq

我的第一张桌子是emp_master

empid    emailid
1        aaa@yahoo.com
2        ww@yahoo.com
3        rr@yahoo.com
4        dd@yahoo.com

我的第二张桌子是emp_resignation

empid    status
1        resigned
3        resigned

现在,我想通过加入两个表来仅提取emailid不是status的{​​{1}}。

输出

resigned

任何人都可以提供链接,查询以上问题???? 拜托,朋友们。

3 个答案:

答案 0 :(得分:0)

使用LEFT JOIN,并选择所有没有匹配的行。

SELECT emailid
FROM emp_master AS m
LEFT JOIN emp_resignation AS r ON m.empid = r.empid
WHERE r.empid IS NULL

答案 1 :(得分:0)

使用组连接(无法说明linq提供程序是否可以翻译它,但它对Linq to SQL或MS SQL的默认EF提供程序完全有效):

from e in db.emp_master
join r in db.emp_resignation
   on e.empid equals r.empid into g
where !g.Any() || g.Any(r => r.status != "resigned")
select e.emailid

答案 2 :(得分:0)

MySQL脚本:

SELECT emailid 
FROM emp_master em
JOIN emp_resignation er
ON em.empid = er.empid 
WHERE er.status != 'resigned'

的LINQ:

from em in emp_master
join er in emp_resignation
on em.empid equals er.empid
where er.status != "resigned"
select em.emailid;