doc: 修改 Join 自己文档。

This commit is contained in:
Suomm 2024-03-12 19:22:46 +08:00
parent 9782a5086b
commit 84891dbd68

View File

@ -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)。