MYSQL 数据库2张表关联查询问题
有2张表表1有catidtitle字段表2有titlecontenttime字段我想查询当表1catid=7,符合表1表2title的关联所有内容并且删除谢谢举个例子ca...
有2张表
表1有catid title 字段
表2有title content time 字段
我想查询当表1 catid=7,符合表1 表2 title 的关联所有内容 并且删除
谢谢
举个例子
catid=资讯
那么符合资讯栏目对应的title 2个表对应的其他内容均要删除 展开
表1有catid title 字段
表2有title content time 字段
我想查询当表1 catid=7,符合表1 表2 title 的关联所有内容 并且删除
谢谢
举个例子
catid=资讯
那么符合资讯栏目对应的title 2个表对应的其他内容均要删除 展开
1个回答
展开全部
关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题.下面给出一些示例:
建表
create table ab
(
ab_id number(5),
ab_name varchar2(30)
);
create table bb
(
bb_id number(5),
bb_name varchar2(30)
);
插入数据
insert into ab(ab_id,ab_name) values(1,'1ab_name');
insert into ab(ab_id,ab_name) values(2,'2ab_name');
insert into ab(ab_id,ab_name) values(3,'3ab_name');
insert into bb(bb_id,bb_name) values(1,'1bb_name');
insert into bb(bb_id,bb_name) values(2,'2bb_name');
insert into bb(bb_id,bb_name) values(4,'4bb_name');
insert into bb(bb_id,bb_name) values(6,'6bb_name');
等值关联(全关联)
select a.ab_id,a.ab_name,b.bb_name from ab a,
bb b
where a.ab_id=b.bb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
返回两个表中所有能匹配的记录,不能匹配的记录不返回。
左关联
select ab_id,ab_name, bb_name
from ab a left join bb b
on a.ab_id=b.bb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id=b.bb_id(+);
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
返回左边表的左右记录,在右边表中没有对应记录的右表字段显示为空。
右关联
select ab_id,ab_name, bb_name
from ab a right join bb b
on a.ab_id=b.bb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id(+)=b.bb_id;
返回结果:
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
4bb_name
6bb_name
返回右边表中所有的记录,在右边表不能匹配的记录行上,左边表对应的字段显示为空。
完全外关联
select ab_id,ab_name, bb_name
from ab a full join bb b
on a.ab_id=b.bb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
6bb_name
4bb_name
建表
create table ab
(
ab_id number(5),
ab_name varchar2(30)
);
create table bb
(
bb_id number(5),
bb_name varchar2(30)
);
插入数据
insert into ab(ab_id,ab_name) values(1,'1ab_name');
insert into ab(ab_id,ab_name) values(2,'2ab_name');
insert into ab(ab_id,ab_name) values(3,'3ab_name');
insert into bb(bb_id,bb_name) values(1,'1bb_name');
insert into bb(bb_id,bb_name) values(2,'2bb_name');
insert into bb(bb_id,bb_name) values(4,'4bb_name');
insert into bb(bb_id,bb_name) values(6,'6bb_name');
等值关联(全关联)
select a.ab_id,a.ab_name,b.bb_name from ab a,
bb b
where a.ab_id=b.bb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
返回两个表中所有能匹配的记录,不能匹配的记录不返回。
左关联
select ab_id,ab_name, bb_name
from ab a left join bb b
on a.ab_id=b.bb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id=b.bb_id(+);
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
返回左边表的左右记录,在右边表中没有对应记录的右表字段显示为空。
右关联
select ab_id,ab_name, bb_name
from ab a right join bb b
on a.ab_id=b.bb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where a.ab_id(+)=b.bb_id;
返回结果:
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
4bb_name
6bb_name
返回右边表中所有的记录,在右边表不能匹配的记录行上,左边表对应的字段显示为空。
完全外关联
select ab_id,ab_name, bb_name
from ab a full join bb b
on a.ab_id=b.bb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
6bb_name
4bb_name
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询