MySQL联合查询及模糊查询

MySQL联合查询及模糊查询,第1张

a LEFT JOIN b ON a.id = b.id。

a.name LIKE CONCAT(CONCAT("%","param.name"),"%")。

import com.baomidou.mybatisplus.core.metadata.IPage

dao,Ipage<entity>pageRecord(Ipage<entity>page, Param param)

xml,sql语句不需要做显式分页,Ipage会代替做。

service,Ipage<entity>res = dao.pageRecord(new Page<>(current, size), param)int sum = res.getTotal()List<entity>records = res.getRecords()

在mapper中直接分页没法得到数据总数,此时可以使用MyBatis的自定义分页Ipage,Ipage<entity>page(new Page<>(current, size)),赋值分页参数,返回用Ipage<entity>接收,总数在Ipage.getTotal()里面,数据在Ipage.getRecords()里面。

Ipage会先根据条件执行count(*),再执行SQL获取数据。

select * from 表1 inner join 表2 on 关联条件

select * from 表1 left outer join 表2 on 关联条件

select * from 表1 right outer join 表2 on 关联条件

select * from 表1 cross join 表2 on 关联条件

MYSQL查询

查询平均成绩大于70分的同学的学号和平均成绩

SELECT s.id,AVG(sc.score) FROM student s,studentcourse sc WHERE s.id=sc.student_id GROUP BY s.id HAVING  AVG(sc.score)>70

查询所有同学的学号、姓名、选课数、总成绩

SELECT id,NAME

FROM student

WHERE id NOT IN (SELECT student_id

FROM studentcourse

WHERE course_id IN (SELECT course.id

FROM teacher,course

WHERE teacher.id=course.teacher_id

AND teacher.name=’关羽’))

查询学生信息和平均成绩

SELECT s.id,s.name,s.city,s.age, c.name,sc.score,t.name

FROM student s,studentcourse sc,course c,teacher t

WHERE s.id=sc.student_id AND c.id=sc.course_id AND c.teacher_id=t.id GROUP BY s.id 


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7252826.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存