当前位置: 首页 > wzjs >正文

网站根目录有哪些站长工具百度百科

网站根目录有哪些,站长工具百度百科,艺术字体转换器在线转换器,支持wordpress的空间在 MyBatis-Plus 中实现表关联查询、嵌套查询和子查询,通常需要结合 XML 映射文件或 Select 注解编写自定义 SQL。以下是具体示例演示:示例场景 假设有两张表: 用户表 userCREATE TABLE user (id BIGINT PRIMARY KEY,name VARCHAR(50),age IN…

在 MyBatis-Plus 中实现表关联查询、嵌套查询和子查询,通常需要结合 XML 映射文件或 @Select 注解编写自定义 SQL。以下是具体示例演示:


示例场景

假设有两张表:

  1. 用户表 user
    CREATE TABLE user (id BIGINT PRIMARY KEY,name VARCHAR(50),age INT
    );
    
  2. 订单表 order
    CREATE TABLE order (id BIGINT PRIMARY KEY,user_id BIGINT,       -- 关联用户IDamount DECIMAL(10,2),status INT
    );
    

1. 表关联查询(JOIN)

目标:查询订单信息并关联用户名
使用 XML 方式实现:

<!-- OrderMapper.xml -->
<select id="selectOrdersWithUser" resultType="map">SELECT o.id, o.amount, u.name AS userNameFROM `order` oLEFT JOIN `user` u ON o.user_id = u.idWHERE o.status = 1
</select>

2. 嵌套查询(Nested Query)

目标:查询用户及其所有订单(一对多)
使用 @Select 注解和 @Result 映射:

// UserMapper.java
@Select("SELECT * FROM user WHERE id = #{id}")
@Results({@Result(property = "id", column = "id"),@Result(property = "orders", column = "id", many = @Many(select = "selectOrdersByUserId"))
})
User selectUserWithOrders(Long id);@Select("SELECT * FROM `order` WHERE user_id = #{userId}")
List<Order> selectOrdersByUserId(Long userId);

3. 子查询(SubQuery)

目标:查询订单金额超过平均金额的订单
使用 QueryWrapper 实现:

// 子查询:计算平均金额
QueryWrapper<Order> avgWrapper = new QueryWrapper<>();
avgWrapper.select("AVG(amount)");// 主查询:筛选大于平均金额的订单
QueryWrapper<Order> wrapper = new QueryWrapper<>();
wrapper.gt("amount", avgWrapper); // 直接嵌入子查询List<Order> orders = orderMapper.selectList(wrapper);

生成的 SQL:

SELECT * FROM `order` 
WHERE amount > (SELECT AVG(amount) FROM `order`)

4. EXISTS 子查询

目标:查询有订单的用户

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.exists("SELECT 1 FROM `order` WHERE user_id = user.id");List<User> users = userMapper.selectList(wrapper);

生成的 SQL:

SELECT * FROM user 
WHERE EXISTS (SELECT 1 FROM `order` WHERE user_id = user.id)

5. IN 子查询

目标:查询状态为1的订单所属用户

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.inSql("id", "SELECT user_id FROM `order` WHERE status = 1");List<User> users = userMapper.selectList(wrapper);

生成的 SQL:

SELECT * FROM user 
WHERE id IN (SELECT user_id FROM `order` WHERE status = 1)

关键点总结

查询类型实现方式
关联查询使用 JOIN + XML/注解手动映射结果
嵌套查询通过 @Result(many=@Many)@Result(one=@One) 关联其他 Mapper 方法
子查询利用 QueryWrappergt/inSql/exists 等方法直接嵌入子查询 SQL
复杂子查询在 XML 中手写完整的 SQL 语句(推荐复杂场景)

注意

  • MyBatis-Plus 的 Wrapper 仅支持简单子查询,复杂关联查询建议使用 XML/注解。
  • 嵌套查询可能引发 N+1 问题,大数据量时慎用。
  • 表名/字段若为 SQL 关键字(如 order),需用反引号 ` 包裹。
http://www.dtcms.com/wzjs/122083.html

相关文章:

  • 搭建网站后的网址网站软文推广范文
  • 东莞网站建设_东莞网页设计seo查询网站是什么
  • 宜宾网站开发公司腾讯nba新闻
  • 线上教学网站龙岗seo优化
  • 小米手机网站建设目标开发一个app平台大概需要多少钱?
  • 个人网站能 做淘客吗seo推广seo技术培训
  • 免费广告设计网站营销
  • 怎么做bbs论坛网站关于网站推广
  • 东莞谢岗网站建设如何推广网页
  • 龙华营销型网站建设公司营销技巧和营销方法培训
  • 西安建设科技专修学院官方网站微信小程序怎么做店铺
  • 建设网站查证书市场营销培训
  • 做外贸网哪些网站免费大数据营销经典案例
  • 机关 网站 建设方案小程序开发平台有哪些
  • 珠海网站建设网络有限公司军事新闻最新24小时
  • html图标代码大全合肥网站推广优化公司
  • 怎么做飞机票的图片网站品牌广告
  • dede旅游网站源码徐州seo公司
  • 沈阳模板 网站建设2023年新闻热点事件
  • 日本做a图片视频在线观看网站网络服务商
  • 做国际贸易的有哪有个网站pc端百度
  • 网站建设毕业设计提问百度搜索引擎广告位的投放
  • 湛江企业自助建站系统线上推广怎么做
  • 怎么做网站栏目业务推广网站
  • 网站明链怎么做成都关键词排名推广
  • 最先进的深圳网站建设优化大师免费下载安装
  • 有哪些做问卷调查挣钱的网站营销推广方案
  • 做一家网站需要多少钱推广普通话宣传语100字
  • 苏州网站关键字优化嘉定区整站seo十大排名
  • 怎么做一个网站的步骤赛事资讯赛马资料