SQL中如何查询A表全部数据与A表有关联的B表部分数据

 我来答
freechan10
2019-11-13 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.2万
展开全部

1、创建测试表,

create table test_col_1(id number, var varchar2(200));

create table test_col_2(id number, var varchar2(200));

2、插入测试数据,

insert into test_col_1 

select level*8, 'var'||level*8 from dual connect by level <= 20;

insert into test_col_2 

select level, 'var'||level from dual connect by level <= 100;

3、查询A表与B表关联记录,

select *

  from test_col_2 b

 where exists (select 1 from test_col_1 a where b.id = a.id)

4、查询A表全部数据及A、B有关联的数据,

select *

  from test_col_1 a

union all

select *

  from test_col_2 b

 where exists (select 1 from test_col_1 a where b.id = a.id)

百度网友154139e
2016-11-07 · TA获得超过413个赞
知道小有建树答主
回答量:295
采纳率:50%
帮助的人:246万
展开全部
左连Left Join
表B中存了表A要的信息,相连字段假设是AID,即B表中有个字段AID,是与A表中ID相关联的
SELECT A.*, B.你要的字段 FROM A
LEFT JOIN B ON A.ID = B.AID
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哪个故人
2019-04-09
知道答主
回答量:25
采纳率:100%
帮助的人:2.2万
展开全部
  1. 当b表没条件时,select * from A a left join B b on a.ID=b.ID

  2. 当b表有条件时

    SELECT a.*,b.*  FROM a

    left join(SELECT * FROM b as bb WHERE bb.Field=1) AS b ON a.ID=b.ID

    或者

    with t as (select * from b where b.Field=1) select * from t right join  a on t.ID=a.ID

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三井熊
2018-02-27 · TA获得超过1204个赞
知道小有建树答主
回答量:909
采纳率:64%
帮助的人:165万
展开全部
select * from 表A名称 a left join 表B名称 b on a.关联字段=b.关联字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式