数据库中左连接和等值连接
inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
例如:
我们先创建两个表,然后添加数据
Food表
create table Food(
fid number primary key,
fname varchar(20),
fprice number
);
insert into Food values (1,'水果',12);
insert into Food values (2,'面包',9);
insert into Food values (3,'饮料',6);
select * from Food;
Tools表
create table Tools(
Tid number primary key references Food(fid),
tname varchar(10)
);
insert into Tools values(1,'叉子');
等值连接
也就相当于内连接,他是取到了满足这个条件的所有数据,但前提必须的满足条件,如果左边或者右边数据个数不一样,那么条件不满足的就不会筛选出来
--写法一
select * from Food f,Tools t
where f.fid=t.tid;
--写法二
select * from Food f
inner join Tools t on f.fid=t.tid;
左连接
他是在返回了左边表的所有数据,然后对右边的表进行匹配,没有匹配到的返回空值
select * from Food f
left join Tools t on f.fid=t.tid;
右连接
他与左连接相反,是对称的,他是在返回了右边表的所有数据,然后对左边的表进行匹配,没有匹配到的返回空值,这个表右表只添加了一条记录,而且匹配上了,所以呈现出一条数据。
select * from Food f
right join Tools t on f.fid=t.tid;
今天是持续写作的第 14 / 200 天。可以点赞、评论、收藏啦。