【发布时间】:2020-02-17 12:16:18
【问题描述】:
这是我的测试脚本,没有主键作为ID,测试用例是连接具有相同键的多行,结果是多少行。
create table Test1(id integer, name varchar(100));
insert into Test1(id, name) values(1, "Vijay");
insert into Test1(id, name) values(1, "Sandy");
insert into Test1(id, name) values(1, "Rohit");
create table Test2(id integer, surname varchar(100));
insert into Test2(id, surname) values(1, "karma");
insert into Test2(id, surname) values(1, "sharma");
insert into Test2(id, surname) values(1, "yadav");
select Test1.id , Test1.name , Test2.surname from Test1
left outer join
Test2 on Test1.id = Test2.id;
1 Vijay karma
1 Sandy karma
1 Rohit karma
1 Vijay sharma
1 Sandy sharma
1 Rohit sharma
1 Vijay yadav
1 Sandy yadav
1 Rohit yadav
select Test1.id , Test1.name , Test2.surname from Test1
right outer join
Test2 on Test1.id = Test2.id;
1 Vijay karma
1 Vijay sharma
1 Vijay yadav
1 Sandy karma
1 Sandy sharma
1 Sandy yadav
1 Rohit karma
1 Rohit sharma
1 Rohit yadav
这在内部如何运作?要做的是保持一个表静态并在其上流式传输另一个表,以及指针在这种情况下的工作原理以及连接过程中元数据的存储位置。
【问题讨论】:
-
在关系数据库方面,如果你没有 PRIMARY KEY,那么你就没有真正的表
标签: mysql left-join right-join