sql咋写



假设 A 表,存放移动、联通信息。
type id createtime

3 1 2010-05-11 08:00:00
10 2 2010-05-11 09:00:00
10 5 2011-05-11 10:56:07
3 4 2011-05-19 10:40:02
3 3 2010-05-12 21:00:00


B 表,存放互动信息。
typeId id createtime

1 1 2010-05-11 08:00:00
2 3 2010-05-19 21:00:00




当A表type=3为移动,type=10时为联通,B表typeId无论几都是互动信息,我想得到如下结果,要怎么写sql?

日期 移动条数 联通条数 互动条数

2010-05-11 1 2 1

2010-05-12 1 0 0

2011-05-19 1 0 1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 SSM 中,动态 SQL 可以通过 MyBatis 提供的动态 SQL 标签来实现。以下是一些常用的动态 SQL 标签: 1. `<if>` 标签:可以根据条件动态地生成 SQL 片段。 例如,在查询用户列表时,如果有用户名关键字,则使用 `<if>` 标签来拼接查询条件: ``` <select id="getUserList" resultMap="userMap"> SELECT * FROM user <where> <if test="keyword != null"> AND username LIKE CONCAT('%', #{keyword}, '%') </if> </where> </select> ``` 2. `<choose>` 标签:类似于 Java 中的 switch 语句,可以根据不同的条件生成不同的 SQL 片段。 例如,在查询用户列表时,如果同时有用户名关键字和用户状态,则使用 `<choose>` 标签来拼接查询条件: ``` <select id="getUserList" resultMap="userMap"> SELECT * FROM user <where> <choose> <when test="keyword != null and status != null"> AND username LIKE CONCAT('%', #{keyword}, '%') AND status = #{status} </when> <when test="keyword != null"> AND username LIKE CONCAT('%', #{keyword}, '%') </when> <when test="status != null"> AND status = #{status} </when> </choose> </where> </select> ``` 3. `<foreach>` 标签:用于遍历集合或数组,并生成相应的 SQL 片段。 例如,在批量插入用户时,可以使用 `<foreach>` 标签来拼接插入语句: ``` <insert id="batchInsertUser" parameterType="java.util.List"> INSERT INTO user (username, password, email) VALUES <foreach collection="list" item="user" separator=","> (#{user.username}, #{user.password}, #{user.email}) </foreach> </insert> ``` 以上是一些常用的动态 SQL 标签,通过这些标签的组合,可以灵活地拼接 SQL 语句,实现动态 SQL 的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值