LEFT JOIN、RIGHT JOIN、INNER JOIN、FULL JOIN 使用

 

 

 

 

 

 

 

select * from t_class_info as c;

id   gradeid  classid  year        createtime                       updatetime

1    一年级    一班    2018           
2    二年级    一班    2018           
3    三年级    一班    2018           
4    四年级    一班    2018           
5    五年级    一班    2018           
6    六年级    一班    2018           
7    七年级    一班    2018           
8    八年级    一班    2018           
9    九年级    一班    2018           
10    一年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
11    二年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
12    三年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
13    四年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
14    五年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
15    六年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
16    七年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
17    八年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00
18    九年级    二班    2018        0000-00-00 00:00:00    0000-00-00 00:00:00

select * from t_user_info as u;

id   cardno name sex age birth                           gradeid

1    111    111    1    12    2018-07-31 17:17:53    2
2    222    222    0    15    2018-07-31 17:17:59    2
3    333    333    1    15    2018-07-31 17:18:02    3
4    555    444    1    16    2018-07-31 17:18:10    3
5    444    555    1    15    2018-07-31 17:18:04    3
6    666    666    0    14    2018-07-31 17:18:07    1
7    777    777    1    18    2018-07-31 17:18:12    1
8    888    888    1    23    2018-07-31 17:49:45   

-- 左表全纪录+连接相等记录
select * from t_user_info as u left join t_class_info as c on c.id=u.gradeid;

-- 右表全纪录+连接相等记录
select * from t_user_info as u right join t_class_info as c on c.id=u.gradeid;

select * from  t_class_info as c right join t_user_info as u on c.id=u.gradeid;
select * from  t_class_info as c left join t_user_info as u on c.id=u.gradeid;

-- 连接相等记录
select * from t_user_info as u inner join t_class_info as c on c.id=u.gradeid;

-- MySQL不支持这种写法,Oracle才支持
-- select * from t_user_info as u full join t_class_info as c on c.id=u.gradeid;

 





 

posted @ 2018-07-31 18:18  一世尘梦(Aion)  阅读(203)  评论(0编辑  收藏  举报