我有下表 -
Table 1
id name hours
Table 2
id department project
以下是我正在运行的查询 -
SELECT id, name, department, TOTAL
FROM table1
WHERE hours='15' AND (id, department,TOTAL) IN
(SELECT id, department, count(*) AS TOTAL FROM table2
WHERE project is 'CS' and deparment IN ('cs', 'ece')
GROUP BY id, department HAVING count(*) > 1)
运行此查询时,我收到以下错误 -
ERROR 1054 (42S22): Unknown column 'department' in 'field list''
这是link我跟着写了这个查询。
我在这里做错了什么?
编辑
- 我的目标是从 table2 中获取部门(仅限 cs 和 ece)以及员工 ID 其中项目 cs 中工作的员 worker 数超过 1。
- 然后,对于从 table2 获取的 id,我想从 table1 获取姓名和工作时间。
- 最初,我为第二部分编写了一个 for 循环,但是编写一个 for 循环会增加查询的数量,从而增加服务器上的负载。因此,我想使用嵌套查询一次性完成此操作。
注意 - 由于连接操作的时间复杂性,我不想使用连接。
示例
table1
id name hours
1 a 15
2 b 16
3 c 15
table2
id department project
1 cs cs
2 ece cs
3 cs cs
4 mech cs
Expected ouput -
id name department hours
1 a cs 15
2 c cs 15
最佳答案
您正在从表 1
中选择部门
。我在 table 1
中看不到任何带有 department
的字段名称。
通常,当您尝试选择数据库中不存在的字段时,“字段列表”中的未知列
会出现。
关于mysql - 从嵌套子查询中选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35438994/