31人参与 • 2025-08-11 • MsSqlserver
drop table if exists `class`; create table `class` ( `c_id` int default null comment '班级id', `c_name` varchar(50) default null comment '班级名' ); drop table if exists `student`; create table `student` ( `s_id` int default null comment '学生id', `s_name` varchar(50) default null comment '学生名', `c_id` int default null comment '班级id' ); insert into `class` (`c_id`, `c_name`) values (1, '一班'), (2, '二班'), (3, '三班'); insert into `student` (`s_id`, `s_name`, `c_id`) values (1, '张三', 1), (2, '李四', 2), (3, '王五', 4);
-- 单表 select * from class c; select * from student s; -- 笛卡尔积 select * from class c inner join student s order by c.c_id, s.s_id; -- 内连 select * from class c inner join student s on c.c_id = s.c_id order by c.c_id, s.s_id; -- 左外连(先on,再join,再where) select * from class c left join student s on c.c_id = s.c_id order by c.c_id, s.s_id; select * from class c left join student s on c.c_id = s.c_id and c.c_id <> 2 order by c.c_id, s.s_id; select * from class c left join student s on c.c_id = s.c_id where c.c_id <> 2 order by c.c_id, s.s_id; select * from class c left join student s on c.c_id = s.c_id and s.c_id <> 2 order by c.c_id, s.s_id; select * from class c left join student s on c.c_id = s.c_id where s.c_id <> 2 order by c.c_id, s.s_id;
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论