HQL之多表查询(一对多和多对多)
一、一对多 以班级Classes和学生Student为例: 回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,student s WHERE s.cid=c.cid; SELECT c.cname,s.sname FROM classes c INNER JOIN student s ON s.cid=c.cid; //左外连接,在内链接基础上,左边表有而右边表没有,两种方式等效; SELECT c.* ,s.* FROM student s LEFT OUTER JOIN classes c ON s.cid=c.cid; SELECT c.* ,s.* FROM student s LEFT JOIN classes c ON s.cid=c.cid; //右外连接,在内链接基础上,右边有而左边无,两种方式等效; SELECT c.* ,s.* FROM classes c RIGHT OUTER JOIN student s ON s.cid=c.cid; SELECT c.* ,s.* FROM classes c RIGHT JOIN student s ON s.cid=c.cid; HQL语句: //查询所有: from Classes c,Student s where c.cid=s