注册 登录
编程论坛 VFP论坛

多表全连接问题

ycvf 发布于 2020-11-25 16:44, 1978 次点击
只有本站会员才能查看附件,请 登录

sele * from A表 full outer join B表 on A表.name==B表.name;
full outer join C表 on A表.name==C表.name;
where A表.id is NULL or B表.id is NULL or C表.id is NULL order by A表.id,B表.id,C表.id

问题:这样就缺少了条件B表和C表的比较?我向要结果是A表、B表、C表之间都不同的数据。逻辑上应该是A表和B表全连接,B和C全连接,A和C全连接。然后排除三表都相同的数据就是需要的结果。
5 回复
#2
sdta2020-11-25 17:20
SELECT A表.CName, B表.CName, C表.CName FROM A表, B表, C表 WHERE A表.CName != B表.CName AND A表.CName != C表.CName AND B表.CName != C表.CName

[此贴子已经被作者于2020-11-25 17:57编辑过]

#3
radiofan2020-11-25 21:15
以下是引用sdta在2020-11-25 17:20:40的发言:

SELECT A表.CName, B表.CName, C表.CName FROM A表, B表, C表 WHERE A表.CName != B表.CName AND A表.CName != C表.CName AND B表.CName != C表.CName


还可以这样子
#4
ycvf2020-11-26 09:39
以下是引用sdta在2020-11-25 17:20:40的发言:

SELECT A表.CName, B表.CName, C表.CName FROM A表, B表, C表 WHERE A表.CName != B表.CName AND A表.CName != C表.CName AND B表.CName != C表.CName

经过测试,如果用每个表的两列同时对比,会提示无足够内容进行文件映像。有时候是提示异常代码C0000094.  代码如下
SELECT A表.CName, B表.CName, C表.CName FROM A表, B表, C表 WHERE A表.CName+A表.id != B表.CName+B表.id AND A表.CName+A表.id != C表.CName+C表.id AND B表.CName+B表.id != C表.CName+C表.id


[此贴子已经被作者于2020-11-26 16:00编辑过]

#5
ycvf2020-11-27 09:45
继续等
#6
chxking2020-11-28 10:28
select name from A union select name from B union select name from C
1