SQL语句如何实现主表只与子表指定字段相关联?

比如,有A表,字段名(A1,A2),子表B,字段名(A1,B1)B表与A表通过外检A1关联A表数据B表数据TE1,2000TE1,7090TE2,2020TE1,7091... 比如,有A表,字段名(A1,A2),子表B,字段名(A1,B1)
B表与A表通过外检A1关联
A表数据 B表数据
TE1,2000 TE1,7090
TE2,2020 TE1,7091
TE3,778 TE2,7092
TE4,779 TE3,7094
希望能够查询结果为
TE1,2000,7091
TE2,2020,7092
TE3, 778,7095
TE4, 779,null
当B表与A表的关联数据为多个值时,取最大值,当没有与A表关联数据是,B表关联数据显示为null
追问哦,fsjvip、hnhygkx1987,两位答案哪个效率更高呢?涉及数十万数据,效率越高越好。
作为另一个问题,我追加了悬赏哦。
展开
 我来答
hnhygkx1987
2013-11-19 · TA获得超过209个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:138万
展开全部

楼主如下写即可:

 
SELECT A.字母,A数字,C.数字
FROM A 
LEFT JOIN
(
  SELECT 字母,数字 FROM B 
  WHERE B.数字=(SELECT MAX (B1.数字)FROM B AS B1  WHERE B1.字母 =B.字母)
  GROUP BY 字母,数字
)C ON  C.字母 = A.字母

 

 

fsjvip的写法也是对的,且没有子查询,效率应该更高!

不过你可以两个都试试,做个实时的比较!

全国流窜
推荐于2016-12-06 · TA获得超过403个赞
知道小有建树答主
回答量:417
采纳率:50%
帮助的人:169万
展开全部
select 主表.*, 子表.* from 主表 inner join 子表 on 主表.字段 = 子表.字段.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二师兄19
推荐于2018-03-14 · TA获得超过377个赞
知道小有建树答主
回答量:303
采纳率:44%
帮助的人:139万
展开全部
select a.a1, a.a2, max(b.b1) from a left join b on a.a1=b.a1
group by a.a1, a.a2
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式