大体是这样
学生可以选多门课程, 一门课程也可以被多个学生选
同时,我这里规定一个老师只能教一门课程 这个是一个一对一的关系
学生和课程是一个多对多的关系, 我把他拆分成2个多对一了,用一个中间表 t_kc_info来保存关联关系
t_kc_info:
+----+------+------+
| id | sid | kid |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 2 | 4 |
| 6 | 2 | 5 |
| 7 | 3 | 1 |
| 8 | 1 | 6 |
+----+------+------+
其中 sid 为学生的ID,kid为课程的ID
现在的问题是
我如何才能查询出,被学生 选学 最多的课程的 名称?课程表为t_kecheng ,字段ID,name 学生表和老师表类似
public class Student {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class KCInfo {
private int id;
private Student stu;
private Kecheng kc;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
public Kecheng getKc() {
return kc;
}
public void setKc(Kecheng kc) {
this.kc = kc;
}
}
<hibernate-mapping>
<class table="t_kc_info" name="test">
<id name="id">
<generator class="native"/>
</id>
<many-to-one name="stu" column="sid"></many-to-one>
<many-to-one name="kc" column="kid"></many-to-one>
</class>
</hibernate-mapping>
以上是主体的代码,请教大家帮忙分析下SQL语句和HQL如何编写 谢谢