2个表的left join怎么写 ,数据量比较大(50分求解)

linshu2526 2013-09-22 01:49:56
表A

字段A
1 A1
2 A2
3 A3
4 A4
5 A5
6 A6
7 A7

表B

字段A
1 A1
2 A2
3 A3
4 A4
5 A5
6 A6
7 B7 <--------这个匹配表A字段A的 A7
8 B8 <--------这个匹配表A字段A的 A7

表A 有1W 条数据,
表B 有1000W的数据.


表A left join 表B
应该怎么做?
...全文
1530 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Net攻城狮 2013-09-23
  • 打赏
  • 举报
回复
需求都说不明白
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
规律是什么?只匹配两行吗?
--小F-- 2013-09-23
  • 打赏
  • 举报
回复
表B做一个视图吧。用CASE WHEN 来判断字段 然后再LFET JOIN 如果有查询条件的话 正好可以做成索引视图
linshu2526 2013-09-23
  • 打赏
  • 举报
回复
别沉了哦~~ 顶哦顶哦~~
linshu2526 2013-09-22
  • 打赏
  • 举报
回复
求助~~别沉了哦
linshu2526 2013-09-22
  • 打赏
  • 举报
回复
不可能 B left join A 的, 因为 B 的数据是 1000W 并且每天增长 而 A 的数据量 很少 只有 1W 左右. 而且 需要的是 A 的数据. 现在要的是根据A 的数据去关联B 里面的数据
Andy__Huang 2013-09-22
  • 打赏
  • 举报
回复
A left join B不行哦,应该是B left join A
;with ta(ID,col) as
(
select 1,'A1'
union all select 2,'A2'
union all select 3,'A3'
union all select 4,'A4'
union all select 5,'A5'
union all select 6,'A6'
union all select 7,'A7'
),
tb(ID,col) as
(
select 1,'A1'
union all select 2,'A2'
union all select 3,'A3'
union all select 4,'A4'
union all select 5,'A5'
union all select 6,'A6'
union all select 7,'B7'
union all select 8,'B8'
)

select b.ID,b.col as colB,  colA=case when a.col IS null then (select top 1 col  from ta order by col desc) else  a.col end
from tb b
left join ta a on a.col=b.col

/*
ID	colB	colA
1	A1	A1
2	A2	A2
3	A3	A3
4	A4	A4
5	A5	A5
6	A6	A6
7	B7	A7
8	B8	A7
*/
linshu2526 2013-09-22
  • 打赏
  • 举报
回复
现在是: 表A 的字段A为 A7 的 与 表B 的字段A为 B7,B8 在 left join 里面应该怎么写? 表A 数据有1W 表B 数据有1000W 原来的思路是: 先 表B CASE WHEN 字段A ='B7' THEN 'A7' CASE WHEN 字段A ='B8' THEN 'A7' ELSE 字段A 然后再表A LEFT JOIN 表B ON A.字段A=B.字段A 不过由于表B 数据量有 1000W 并且每天不断增长. 而 表A 数据量只有1W 左右
Andy__Huang 2013-09-22
  • 打赏
  • 举报
回复
是不是用A表最大的一条去匹配B表没有匹配的数据?
haitao 2013-09-22
  • 打赏
  • 举报
回复
select *
from ta
left join tb on ta.a=tb.b or ((tb,a='B7' or tb.a='B8') and ta.a='A7')

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧