学生表(student)
班级表(class)
例如查询学生以及其所在班级的信息 * 写法1:select s.*, c.* from student s, class c where s.cid = c.id * 写法2:select s.*, c.* from student s inner join class c on s.cid = c.id
写法:select s.*, c.cname from student s inner join class c on s.cid = c.id
右外连接(right outer join):select s.*, c.cname from student s right outer join class c on s.cid = c.id 虽然C班没有学生与之关联,但是它还是被查询出来了。上面的sql使用的右外连接,那么就会选择右表(班级表)的所有行,即使左表(学生表)没有与之相关联的行。左外连接与之相反(查所有学生,即使有的学生没班级信息也会被查出来)。 左外连接(left outer join):select s.*, c.cname from student s left outer join class c on s.cid = c.id
mysql中不能使用full outer join,需要使用union来完成
select s.*, c.cname from student s right outer join class c on s.cid = c.id union select s.*, c.cname from student s left outer join class c on s.cid = c.id