求助oracle和sqlserver数据库高手,左连接查询问题
问题如下:1、表A、表B、表C三张表。表A字段IDNAME表B字段IDNAMEAiD表C字段IDNAMEAIDAID为对应的表A的ID2、对应关系为:表A和表B一对多,表...
问题如下:
1、表A 、表B 、 表C三张表。
表A 字段 ID NAME
表B字段 ID NAME AiD
表C字段 ID NAME AID
AID为对应的表A的ID
2、对应关系为:表A和表B 一对多,表A和表C一对多
3、表A、表B、表C都是十万至百万级的数据量
4、实现效果列:
A.ID A.NAME B.ID B.NAME C.ID C.NAME
数据库查询语句该如何写才能查询出正确的结果,最好用到左连接。查询时间越短越好
另外小弟的左连接是看不明白,最好有说明,谢谢各位大神 展开
1、表A 、表B 、 表C三张表。
表A 字段 ID NAME
表B字段 ID NAME AiD
表C字段 ID NAME AID
AID为对应的表A的ID
2、对应关系为:表A和表B 一对多,表A和表C一对多
3、表A、表B、表C都是十万至百万级的数据量
4、实现效果列:
A.ID A.NAME B.ID B.NAME C.ID C.NAME
数据库查询语句该如何写才能查询出正确的结果,最好用到左连接。查询时间越短越好
另外小弟的左连接是看不明白,最好有说明,谢谢各位大神 展开
展开全部
Select A.ID,A.NAME, B.ID,B.NAME,C.ID,C.NAME
From A
Left Join B
On A.ID=B.AID
Left Join C
On A.ID=C.AID
第一个Left Join:
LEFT JOIN 关键字会从左表 (A) 那里返回所有的行,即使在右表 (B) 中没有匹配的行。
第二个Left Join:
LEFT JOIN 关键字会从左表 (A) 那里返回所有的行,即使在右表 (C) 中没有匹配的行。
若数据比较多,建议B,C表建立关于字段AID的索引
From A
Left Join B
On A.ID=B.AID
Left Join C
On A.ID=C.AID
第一个Left Join:
LEFT JOIN 关键字会从左表 (A) 那里返回所有的行,即使在右表 (B) 中没有匹配的行。
第二个Left Join:
LEFT JOIN 关键字会从左表 (A) 那里返回所有的行,即使在右表 (C) 中没有匹配的行。
若数据比较多,建议B,C表建立关于字段AID的索引
追问
我查出来的数据A.ID会有多个,但是A.ID是唯一的啊。
用distinct去重A.ID也不行。
是不是我理解有错误,一有连接方式我就犯晕
追答
你给出一些数据作为例子,然后你想要什么结果。
我然后再帮你看看。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询