我使用的是mysql数据库
建表语句:
create table test1
(
id VARCHAR(10) PRIMARY KEY,
val varchar(20)
)
create table test2
(
id varchar(10) primary key,
val varchar(20)
)
插入数据:
insert into test1 VALUES('1','123123');
insert into test1 VALUES('2','123123');
insert into test1 VALUES('3','123123');
insert into test1 VALUES('4','123123');
insert into test1 VALUES('5','123123');
insert into test2 VALUES('1','123123');
insert into test2 VALUES('2','123123');
insert into test2 VALUES('3','123123');
insert into test2 VALUES('4','123123');
insert into test2 VALUES('7','123123');
普通的连接查询
select *from test1, test2 where test1.id=test2.id;
结果:
left join :
select *from test1 left join test2 on test1.id=test2.id;
结果:
right join
select *from test1 right join test2 on test1.id=test2.id;
结果:
inner join:
select *from test1 inner join test2 on test1.id=test2.id;
结果:
从上面的结果结果中可以明显看出left join 是以表test1为基础的,
而right join是以test2为基础,
而inner join和普通的连接没有什么区别,所以使用的比较少。
在这顺便说一下,oracle 9i以前使用的是‘+’号代替的,具体使用方法请自行到网上查找,我不在此提供。