sql join (以left join为例)的表的先后顺序主要如何考虑? 100

 我来答
pthaihong2013
2014-02-27 · TA获得超过163个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:136万
展开全部
您好,SQL语句有join是因为把优化后的数据重新联结完整,体现直观数据表达的作用.(这样讲可能还是太抽象).
我们做数据优化的时候.一般要理清楚数据实体的关联关系.
例如:E-R
所以先后顺序的问题.
left join的话.
第一张表就是主体表
后面的都是与这张表有关联关系的表(一般是明细表,辅表)
把主体表与left join tablename的关联字段作为on条件
希望我的回答能帮助您理解.
553170329
2017-06-28 · TA获得超过268个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:104万
展开全部
  1. 说明:

    left join 是左连接查询  

    LEFT JOIN 关键字会从左表 (A) 那里返回所有的行,即使在右表 (B) 中没有匹配的行。

  2. 语法:

    select A.*,B.*  from A  left join B on A.x=B.x

  3. 分析:

    上面sql中:left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的。换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID)。B表记录不足的地方均为NULL。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liguangwen91
2020-03-10 · TA获得超过131个赞
知道小有建树答主
回答量:239
采纳率:75%
帮助的人:50.7万
展开全部
在不影响速度的情况下可以不考虑顺序,当查询速度慢时,优化查询速度时要考虑left join表的顺序。以查询表的数据量小的放置在前,以有查询过滤条件的放置在前面,优先关联
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯内科Snake
2014-02-27 · TA获得超过523个赞
知道小有建树答主
回答量:707
采纳率:50%
帮助的人:240万
展开全部
select * from
A left join B on A.Id=B.Id
sql是这样做的
以A表的某一个A.Id为基准 查询B表的B.id是否有该A.id的记录
有几行 那么查询节点 关于当前A.id的记录就有几条

如果B表彻底没有A.id的记录 B表的所有字段全部按null处理
更多追问追答
追问
我的问题不是问什么是left join,而是问假如有多个表需要left join,如何确定先写哪个后写哪个?你的答案只说了两个表,请多说几个表,并说明是否必须以哪个顺序来查询。
追答
按照哪个顺序来查询 主要取决于你的需求。你要查询什么东西,而并不是必须按照那个顺序来查。大多数情况下inner join 就可以了,left join主要用于必须还要显示出没有的数据。
可以这样类比 学生Student 考试成绩Score,如果学生没有参加课程的考试,则在成绩表中就没有数据行 此时左连接left join 就可以把所有学生的Score查出来,如果Score is null 说明没有参加考试 select * from Student a left join Score b on a.StuId=n.StuId

select * from A left join B on A.Id1=B.Id
left join C on A.Id2=C.Id
left join D on A.Id3=D.Id
.....

这是四表左连接查询 你这样分隔看 A左连接B 可以认为是A、B表组成的一个临时表t_AB
这个临时表t_AB又与C表 进行左连接 A、B、C三张表组成一个临时表t_ABC,然后t_ABC再与D表连接查询。
你可以类似三元表达式
int x=5;
int y=x>6?x:(x>4?1:0));
即时是多表连接查询 你也可以看作是两表查询后 再和其他表查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DOTA_老坑爹
2015-03-18
知道答主
回答量:7
采纳率:0%
帮助的人:3.1万
展开全部
楼主问的意思,应该是从性能上面考虑!我记得在哪看过,连接应该把较小的表放在前面!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式