mysql - 从嵌套子查询中选择多列

标签 mysql sql

我有下表 -

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我跟着写了这个查询。

我在这里做错了什么?

编辑

  1. 我的目标是从 table2 中获取部门(仅限 cs 和 ece)以及员工 ID 其中项目 cs 中工作的员 worker 数超过 1。
  2. 然后,对于从 table2 获取的 id,我想从 table1 获取姓名和工作时间。
  3. 最初,我为第二部分编写了一个 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/

相关文章:

php - 从 session 数组 php 获取单个元素以通过 MySQL SELECT 语句

MySQL INNER JOIN 在同一个表上

mysql - 使文本列不为空的正确方法是什么

mysql - 如何获取包含双重 ID 引用的行

mysql - 更改数据类型的带时间戳的 SQL 存储

mysql - 左连接或条件执行缓慢

php - 如何使用选项和选择在 php 中显示数据库中的图像

mysql - 从 Node.js 将 Json 存储到 MySQL 数据库中

php - 在 mysql 列中使用 UNIX 纪元?

php - 通过在 PHP 中分组显示来自两个表的数据