概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入几条测试数据. create table Category ( Id int not null auto_increment, Name ) null, constraint pk_category primary key (Id) ); INSERT INTO category(Name) VAL
方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集,封装联表查询的数据(去除重复的数据) SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id} 方式二:嵌套查询,通过执行另外一个SQL 映射语句来返回预期的复杂类型 SELECT * FROM class c,teacher t WHERE c.tid = t.tid AND c.cid=#{id} SELECT t.tid id, t.tname
现有两表A(大).B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B.id = A.id 在写SQL的时候可能这个顺序都是随便写的,当然SQL1和SQL2 执行的结果是完全相同的,那效率是否也一样呢,答案是否定的.SQL1 相当于将A表的id取出来,然后遍历B表进行查询,SQL2相当于将B表的id取出来,然后遍历A表进行查询.如果表A的记录条数为m,表B的记录条数为n
模拟业务关系:一个用户user有对应的一个公司company,每个用户有多个账户account. spring boot 2的环境搭建见上文:spring boot 2整合mybatis 一.mysql创表和模拟数据sql CREATE TABLE IF NOT EXISTS `user` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, `company_id` ) NOT NULL, PRIMARY KEY (`id`) ) ENGIN
一对一查询 实现语句:select * from neworder o, user u where o.uid = u.id 实体Order: 接口: 配置: 测试: 一对多查询 实现语句:select *,o.id oid from user u left join neworder o on u.id=o.uid; User实体类修改: 接口: 配置UserMapper.xml: 测试: 多对多查询 实现student与course之间多对多的关系:select * from student
select sum(a1.`num`) from `order_orderlistrow` as a1 INNER JOIN `order_orderlist` as a2 on a1.`order_orderlist_id` = a2.`id` where a1.`goods_good_id` ='54' and a2.`state` <> '0'