表1
前端要求根据表1中的"category_id"查询出表2中的"name"并返回到页面
- 第一次写的时候是做了两次查询,查了两个表封装对象放到一个List里面,这样写很不合理而且很丑,返回的是两个表的所有数据
- 发现不合理之后,就用了左连接查询,查询结果
============================================================
2019.4.15更新
- 这次项目查询需要联4张表查询 查询的sql很快就写出来了,使用内连接
SELECT
p1.id,p1.brand_id,p1.name "商品名称",
p2.NAME "商品分类二级",
p4.NAME "商品分类一级",
p3.vertify_man "审核人",
p3.STATUS "审核状态",
p3.detail "审核详情"
FROM
pms_product p1,
pms_product_category p2,
pms_product_vertify_record p3,
pms_product_category p4
WHERE
p1.product_category_id = p2.id
AND p1.id = p3.id
AND p2.parent_id = p4.id
AND p1.id = 1;
复制代码
查询结果
因为另外表的字段不多而且是基于商品表(pms_product)加上的,所以要在商品表的实体类上加上对应的字段,上面就是在商品类里面直接加了,这样等于修改原来的实体类,个人感觉不是很好,于是就另外写了一个类继继承商品表的实体类
mapper.xml
- 不过这个还是今天才解决的,上周六一天都没搞定,还是自己太笨了 开始是这样写的
- 然后这样查出来的都是以第一个name查出的值封装的
- 出现这个问题后,一直想是不是查询方法不合适造成的,就想着用子查询,由于没写出来子查询就没弄
- 周一上班发现可以用别名区分啊,哈哈
- 来看最后的结果