多表关联查询

最后更新:2023-09-29 23:16:44 | 状态:未完成

首先Java代码中不建议使用多表查询。正常情况下应该由数据库负责人来提供相关的视图或存储过程。

常用格式如下,其中查询条件与其他查询格式一致


	
set = service.querys(TableBuilder.init().setTable("CRM_TENANT AS M")
	.left("CRM_USER AS U","M.USER_ID = U.ID")
	.build());

set = service.querys(TableBuilder.init("SD_ORDER AS M")
	.left("CRM_USER AS U","M.USER_ID = U.ID")
	.left("CRM_TENANT AS T","M.TENANT_ID = T.ID")
	.build());


set = service.querys(TableBuilder.init("SD_ORDER(M.ID,U.NM,T.NM AS TENANT_NM) AS M")
	.left("CRM_USER AS U","M.USER_ID = U.ID")
	.left("CRM_TENANT AS T","M.TENANT_ID = T.ID")
	.build()
,condition(true,"M.ID:od","TENANT_ID:tt"));

service.querys(TableBuilder.init() 
   .setTable("HR_USR(U.ID AS USER_ID,D.ID AS DEPT_ID)").setAlias("U") 
  .left("HR_DEPT D","U.DEPT_ID = D.ID").build() 
  , condition(true,"A.NM:%nm%"));


//如果查的列比较多可以通过ConfigStore来设置
ConfigStore configs = new DefaultConfigStore();
configs.columns("M.ID","F.CODE AS DEPARTMENT_CODE");
service.query(TableBuilder.init("HR_EMPLOYEE AS M").left("HR_DEPARTMENT AS F", "F.DEPARTMENT_ID = F.ID").build(), configs);
/*
SELECT
M.ID,F.CODE AS DEPARTMENT_CODE
FROM
HR_EMPLOYEE
M
LEFT JOIN HR_DEPARTMENT  F ON F.DEPARTMENT_ID = F.ID
*/

//没有什么是原生SQL解决不了的,也可以这样
service.querys("SELECT A.*,B.CODE FROM A LEFT JOIN B ON A.BID = B.ID", condition(true,"A.NM:%nm%"));
最近更新 搜索 提交