mysql join语句在线练习

http://mysql.jsrun.net/

CREATE DATABASE test;
use test;
CREATE TABLE student (
	id int,
	name varchar(255),
	address varchar(255),
	city varchar(255)
);
INSERT INTO student VALUES (1, '刘一', '郑十家隔壁', '河南');
INSERT INTO student VALUES (2, '陈二',  '李四家隔壁', '安徽');
INSERT INTO student VALUES (3, '张三',  '白娘子家隔壁', '杭州');
INSERT INTO student VALUES (4, '李四',  '许仙家隔壁', '杭州');
INSERT INTO student VALUES (5, '王五',  '李四家隔壁', '杭州');
INSERT INTO student VALUES (6, '赵六',  '赵六家隔壁', '杭州');
INSERT INTO student VALUES (7, '孙七',  '张三家隔壁', '杭州');
INSERT INTO student VALUES (8, '周八',  '雷峰塔附近', '杭州');
INSERT INTO student VALUES (9, '吴九',  '孙七家隔壁', '杭州');
INSERT INTO student VALUES (10, '郑十',  '周八家隔壁', '杭州');
 
CREATE TABLE stu_course (
	stu_id int,
	course_name varchar(255)
);
INSERT INTO stu_course VALUES (3, '语文');
INSERT INTO stu_course VALUES (3, '数学');
INSERT INTO stu_course VALUES (3, '英语');
INSERT INTO stu_course VALUES (4, '语文');
INSERT INTO stu_course VALUES (4, '体育');
INSERT INTO stu_course VALUES (5, '历史');
INSERT INTO stu_course VALUES (5, '体育');
INSERT INTO stu_course VALUES (11, '历史');
INSERT INTO stu_course VALUES (11, '体育');

笛卡尔积:CROSS JOIN

在这里插入图片描述

inner join

在这里插入图片描述
默认join:
在这里插入图片描述

left join

在这里插入图片描述

right join

在这里插入图片描述

例子:count按时间累加

CREATE DATABASE test;
use test;
CREATE TABLE people (
	year varchar(255),
	number int
);
INSERT INTO people VALUES ('2018', 1);
INSERT INTO people VALUES ('2019', 3);
INSERT INTO people VALUES ('2020', 5);
INSERT INTO people VALUES ('2021', 9);

在这里插入图片描述

select a.year as year, sum(b.number) as number
from people a  
	join people b 
	on a.year >= b.year
group by year
order by year

累加如下:

select 
    p1.year, 
    p1.number as number,
    p2.number as sum_number
from people p1 
left join
(
    select a.year as year, sum(b.number) as number
    from people a 
    left join people b 
    on a.year >= b.year
    group by  a.year
) p2 
on p1.year = p2.year

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_26437925/article/details/129216467
今日推荐