From cd68b2e25d4288a02fc89c203cdbe0ba5e0b8547 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Tue, 9 Apr 2024 06:47:12 +0800 Subject: [PATCH] fix [115](https://github.com/yulichang/mybatis-plus-join/issues/115) --- .../github/yulichang/test/join/m/SelectSubTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/SelectSubTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/SelectSubTest.java index 6eaef3e..2563629 100644 --- a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/SelectSubTest.java +++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/SelectSubTest.java @@ -48,4 +48,17 @@ public class SelectSubTest { .le(UserDO::getId, 100); wrapper1.list(); } + + @Test + void sub1() { + ThreadLocalUtils.set("SELECT (SELECT st.id FROM `area` st WHERE st.del = false AND (st.id = t1.id) LIMIT 1) AS id FROM `user` t LEFT JOIN address t1 ON (t1.user_id = t.id) WHERE t.del = false AND t1.del = false AND (t.id <= ?)"); + MPJLambdaWrapper wrapper1 = JoinWrappers.lambda(UserDO.class) + .selectSub(AreaDO.class, w -> w.select(AreaDO::getId) + .eq(AreaDO::getId, AddressDO::getId) + .setTableName(t -> "`" + t + "`") + .last("limit 1"), UserDO::getId) + .leftJoin(AddressDO.class, AddressDO::getUserId, UserDO::getId) + .le(UserDO::getId, 100); + wrapper1.list(); + } }