2012-10-03 99 views
2

问题问“中显示其职位的所有员工的名字是一样的,在销售部的人”,但选择多行与一个子查询

SELECT name, job 
FROM Employer WHERE job=(SELECT job FROM employer WHERE dept = sales); 

不会因为子查询工作返回多个值。我如何解决这个问题?

+0

我删除了“家庭作业”标记,因为它不应该再使用。看到[这个问题](http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated)了解更多信息。 –

回答

4

尝试使用in

SELECT name, job 
    FROM Employer 
    WHERE job in (SELECT job FROM employer WHERE dept = sales); 
+0

+1打我0.5秒 –

+0

这很简单,谢谢。 – spacitron

0

@Parado具有最简单的解决方案。请记住,但是,in关键字实际上只是一个join。例如,您的查询与以下内容相同:

SELECT e1.name, e1.job 
FROM Employer e1 
    JOIN Employer e2 on e1.job = e2.job 
WHERE e2.dept = 'sales'