作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个查询,该查询返回公司中具有特定技能的员工的员工 ID。
SELECT competences.employee_id
FROM competences
WHERE service_id = 2)
返回
1
2
4
7
我现在想使用这个查询返回来查找这些员工的姓名从员工表中。我已经尝试过,这当然不起作用,但可以弄清楚如何做到这一点。
SELECT employee.first_name, employee.last_name
FROM employee
WHERE employee.employee_id =
(SELECT competences.employee_id
FROM competences
WHERE service_id = 2)
如何使用子查询来获取员工?
最佳答案
这是JOIN
的工作。您应该阅读有关 JOIN 的内容。有许多教程可用。 Here is one .
尝试这样的事情:
SELECT DISTINCT employee.first_name, employee.last_name
FROM employee
JOIN competences ON employee.employee_id = competences.employee_id
WHERE competences.srvice_id = 2
使用IN
产生与JOIN
相同的结果。但它使用所谓的依赖子查询,当表变大时,这可能会严重影响性能。 DISTINCT
删除任何可能重复的员工姓名。如果我们知道列的名称和含义,我们就可以提供更具体的建议来生成最有用的查询。
关于mysql - 可以并且应该循环遍历子查询的查询返回吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50437030/
我是一名优秀的程序员,十分优秀!