标题:用 sql 语句三表内联为什么结果不正确,但分别二二联接后新表与第 3 个表内 ...
只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用sdta在2014-9-10 12:46:45的发言:

自顾自说
裁取于VFP6帮助文件中视图设计器”中指定的内部联接,及它在 SELECT-SQL 语句中的表示
它三个表内联书写格式见命令框中所示
2014-09-10 14:30
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
三表以上联接的命令格式一般是:

SELECT * ;
   FROM T1 ;
      JOIN T2 ON T1、T2间的联接条件 ;
      JOIN T3 ON T1、T3间的联接条件(或T2、T3间的联接条件);
      ... ...

而不是楼主所示的联接归联接写,条件归条件写。
2014-09-10 16:44
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
得分:0 
.    .

[ 本帖最后由 qingfameng 于 2014-9-11 15:00 编辑 ]
2014-09-10 21:39
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:20 
楼主遇到的问题,现解答如下:
1. 对于三表(t1、t2、t3)连接的问题,如果使 t1 与 t2 连接、t2 与 t3 连接,应采用如下格式:
select * from t1 inner join t2 inner join t3 on t2.id = t3.id on t1.id = t2.id
一定要注意:先写t2与t3的连接条件(on t2.id=t3.id),再写 t1 与 t2 的连接条件(on t1.id=t2.id)

2. 如果使 t1 与 t2 连接,t1 与 t3 连接,应采用如下格式:
select * from t1 inner join t2 on t1.id = t2.id inner join t3 on t1.id = t3.id

综上所述,如果将楼主的代码作如下修改,即可得到正确的结果:
select * from ls1 inner join ls2 inner join ls3 on ls12报名点代码=ls3.报名点代码 on ls1.报名点代码=ls2.报名点代码

泉城飞狐
2014-09-11 11:12
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
liuxingang28班主的解答附合我意。谢谢!
2014-09-11 12:27
wmcwww
Rank: 2
等 级:论坛游民
威 望:1
帖 子:60
专家分:21
注 册:2012-11-2
得分:0 
你的写法是表2和表3都与表1 内联
2014-09-12 10:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-435908-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015315 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved