我有两张表,一张学生表,一张老师表,mybatisplus怎么根据老师id查出他的学生
时间: 2024-03-05 12:51:29 浏览: 19
可以通过MybatisPlus的Wrapper来实现。首先,需要定义一个mapper接口方法,方法中使用@Select注解,然后编写SQL语句,使用MybatisPlus的Wrapper进行查询。
例如,假设学生表的实体类名为Student,老师表的实体类名为Teacher,学生表中有一个外键teacher_id与老师表的id关联,查询老师的学生可以使用如下代码:
```java
@Select("select * from student")
List<Student> selectStudentByTeacherId(@Param("teacherId") Long teacherId);
```
然后在实现类中,可以使用如下代码实现:
```java
public List<Student> selectStudentByTeacherId(Long teacherId) {
QueryWrapper<Student> wrapper = new QueryWrapper<>();
wrapper.eq("teacher_id", teacherId);
return studentMapper.selectList(wrapper);
}
```
其中,QueryWrapper是MybatisPlus提供的一个查询条件构造器,eq方法表示等于,第一个参数是数据库表中的字段名,第二个参数是要查询的值。selectList方法是MybatisPlus提供的查询方法,传入查询条件构造器即可查询。
这样,就可以根据老师id查询他的学生了。
相关问题
elementui如何将一张学生表按照性别分为两张表
您可以使用elementui的Table组件,并使用computed计算属性来将学生表按性别分为两张表。
首先,在data中定义学生表的数据:
```javascript
data() {
return {
students: [
{ name: '张三', gender: '男', age: 18 },
{ name: '李四', gender: '男', age: 19 },
{ name: '王五', gender: '女', age: 20 },
{ name: '赵六', gender: '女', age: 21 }
]
}
}
```
然后,使用computed计算属性将学生表按性别分为两张表:
```javascript
computed: {
maleStudents() {
return this.students.filter(student => student.gender === '男');
},
femaleStudents() {
return this.students.filter(student => student.gender === '女');
}
}
```
最后,在template中使用两个Table组件分别展示男生表和女生表:
```html
<el-table :data="maleStudents">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
<el-table :data="femaleStudents">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
</el-table>
```
这样就可以将学生表按性别分为两张表展示了。
一张表,用sql查出只选两门课程的学生姓名和学号.
假设有以下表结构:
```
表名:student
字段:id(学号)、name(姓名)
表名:score
字段:id(学号)、course(课程名)
```
可以使用以下 SQL 语句查询只选了两门课程的学生姓名和学号:
```sql
SELECT s.id, s.name
FROM student s
INNER JOIN score sc ON s.id = sc.id
GROUP BY s.id, s.name
HAVING COUNT(DISTINCT sc.course) = 2;
```
这条 SQL 语句的含义是:先通过内连接将学生表和成绩表关联起来,然后按照学生的学号和姓名进行分组,最后在分组的结果中筛选出只选了两门不同课程的学生。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)