From 84891dbd687d85eec498e653d254907dd2a20855 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Tue, 12 Mar 2024 19:22:46 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E4=BF=AE=E6=94=B9=20Join=20=E8=87=AA?= =?UTF-8?q?=E5=B7=B1=E6=96=87=E6=A1=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/base/querywrapper.md | 45 +++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/docs/zh/base/querywrapper.md b/docs/zh/base/querywrapper.md index f9a51daa..92584add 100644 --- a/docs/zh/base/querywrapper.md +++ b/docs/zh/base/querywrapper.md @@ -866,34 +866,43 @@ WHERE tb_account.age >= ? ## join 自己 ```java -QueryWrapper queryWrapper = QueryWrapper.create(); -queryWrapper.from(ACCOUNT) - .leftJoin(ACCOUNT).as("a1").on(ACCOUNT.ID.eq(ACCOUNT.PARENT_ID)) - .leftJoin(ACCOUNT).as("a2").on(ACCOUNT.ID.eq(ACCOUNT.PARENT_ID)) - .where(ACCOUNT.ID.ge(1)); +AccountTableDef a1 = ACCOUNT.as("a1"); +AccountTableDef a2 = ACCOUNT.as("a2"); +ArticleTableDef ar = ARTICLE.as("ar"); + +QueryWrapper queryWrapper = new QueryWrapper() + .select(ar.CONTENT, a1.ID, a2.AGE) + .from(ar) + .leftJoin(a1).on(a1.ID.eq(ar.ACCOUNT_ID)) + .leftJoin(a2).on(a2.ID.eq(ar.ACCOUNT_ID)); ``` 其查询生成的 Sql 如下: ```sql -SELECT * FROM `tb_account` - LEFT JOIN `tb_account` AS `a1` - ON `a1`.`id` = `tb_account`.`parent_id` - LEFT JOIN `tb_account` AS `a2` - ON `a2`.`id` = `tb_account`.`parent_id` -WHERE `tb_account`.`id` >= ? +SELECT + ` ar `.` content `, + ` a1 `.` id `, + ` a2 `.` age ` +FROM + ` tb_article ` AS ` ar ` + LEFT JOIN ` tb_account ` AS ` a1 ` ON ` a1 `.` id ` = ` ar `.` account_id ` + LEFT JOIN ` tb_account ` AS ` a2 ` ON ` a2 `.` id ` = ` ar `.` account_id ` ``` 若 `tb_account` 表带有逻辑删除,那么其生成的 SQL 如下: ```sql -SELECT * FROM `tb_account` - LEFT JOIN `tb_account` AS `a1` - ON `a1`.`id` = `tb_account`.`parent_id` AND `a1`.`is_delete` = ? - LEFT JOIN `tb_account` AS `a2` - ON `a2`.`id` = `tb_account`.`parent_id` AND `a2`.`is_delete` = ? -WHERE `tb_account`.`id` >= ? - AND `tb_account`.`is_delete` = ? +SELECT + ` ar `.` content `, + ` a1 `.` id `, + ` a2 `.` age ` +FROM + ` tb_article ` AS ` ar ` + LEFT JOIN ` tb_account ` AS ` a1 ` ON (` a1 `.` id ` = ` ar `.` account_id `) + AND ` a1 `.` is_delete ` = 0 + LEFT JOIN ` tb_account ` AS ` a2 ` ON (` a2 `.` id ` = ` ar `.` account_id `) + AND ` a2 `.` is_delete ` = 0 ``` > 关于逻辑删除更多文档请参考 [这里](../core/logic-delete.html)。