sql - 我如何获取同名员工的所有ID

标签 sql grails gorm

我想编写一个GORM查询,该查询可以列出具有相同姓名的所有员工的ID

数据库格式为:

|id|Department|EMPLOYEE| DATE |
|01|   D01    |   A    |Date01|
|02|   D03    |   B    |Date03|
|03|   D02    |   B    |Date04|
|04|   D04    |   C    |Date05|
|05|   D05    |   A    |Date03|
|06|   D01    |   B    |Date02|
|07|   D02    |   A    |Date04|
|08|   D04    |   A    |Date05|
|09|   D04    |   C    |Date01|
|10|   D05    |   A    |Date02|

结果应该像
|EMPLOYEE|       id       |
|   A    | 01,05,07,08,10 |
|   B    |    02,03,06    |
|   C    |      04,09     |

最佳答案

id列是一个集合,因此最好调用该ids

对于您的同事来说,用sql处理一行内的行不是很容易,如果您必须加载大量数据并且可能会遇到性能问题,我只会使用它。

因此,我建议在您的Java代码中使用一个简单的findAllByEmployee查询和group by Employee

如果由于对象脱水而希望节省一些带宽和cpu,则可以使用criteria仅加载所需的属性:

def result = Empoloyee.createCriteria().list{
    projections {
        property 'id'
        property 'EMPOLYEE'
    }
    // Paging if needed
}

def empolyeeToIdsMap = result.groupBy {it.EMPLOYEE}


免责声明:
没有尝试过代码,可能包含错误。

关于sql - 我如何获取同名员工的所有ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56806336/

相关文章:

c# - sql server通知正在运行的程序

SQL - 聚合函数 - GROUP BY 子句

MySQL:外键约束在 InnoDB 中被忽略

grails - 有诸如groovy xml-rpc请求构建器之类的东西吗?

grails - 如何在域中导入服务?

grails - Grails:在 Controller 中加载jdbcDriver

java - ' sys.objects ' 附近的语法不正确

authentication - Grails 3 中的 Jetty 容器身份验证

grails - 除了使用 transient 关键字之外,还有其他任何方法可以阻止Grails域类中字段(也是域类对象)的持久性吗?

grails - 更改表时Grails产生错误