Office中国论坛/Access中国论坛

标题: 求助(急) 执行全外连接查询引发的错误 [打印本页]

作者: xhcb    时间: 2006-6-4 22:55
标题: 求助(急) 执行全外连接查询引发的错误
SELECT a.*,b.*
FROM sheet1 as a FULL OUTER JOIN sheet2 as b ON a.f3=b.f3;

执行以上语句会提示FROM 子句语法错误,为什么?请高手指教.
作者: nxjswt    时间: 2006-6-5 03:23
ACCESS支持外连接,但不包括完整外部联接,如支持 INNER JOIN
LEFT JOIN 或 RIGHT JOIN
但不支持
FULL OUTER JOIN 或 FULL JOIN


你用RIGHT JOIN 试验!



简要地将你的数据库传上来看看!

[此贴子已经被作者于2006-6-4 19:25:37编辑过]


作者: xhcb    时间: 2006-6-5 04:29
标题: 请教 nxjswt
[attach]18262[/attach]
请指教:如何以F3为连接条件将两个表并在一起,形成SHEET1.F1、SHEET1.F2、SHEET1.F3+SHEET2.F3、SHEET2.F1、SHEET2.F2五个字段的新表

最简单的办法使用全外连接吗?
作者: nxjswt    时间: 2006-6-5 04:50
把你的EXCEL发个例子上,要看你的F3什么类型啊

难道需要这样

SELECT Sheet1.F1, Sheet1.F2, Sheet2.F3+Sheet1.F3 AS 合并F3, Sheet2.F1, Sheet2.F2
FROM Sheet1, Sheet2
WHERE (((Sheet2.F3)<>"0"));


[此贴子已经被作者于2006-6-4 20:54:39编辑过]


作者: xhcb    时间: 2006-6-5 04:55
标题: 再请教nxjswt
[attach]18263[/attach]


EXCEL中的SHEET1、SHEET2
作者: xhcb    时间: 2006-6-5 05:04
好象这是右外连接,这样得到的结果也不会全的,有部分存在SHEET1而不在SHEET2的记录就会丢失。
作者: nxjswt    时间: 2006-6-5 05:22
1、你的EXCEL2最后显示第二列类型不符合,521-524

2、你的目的是重复查询还是必须对应查询啊

[此贴子已经被作者于2006-6-4 21:22:56编辑过]


作者: xhcb    时间: 2006-6-5 05:29
是以F3为连接条件的对应查询,有什么办法可以让对应到的依次排列,对不上的接在后面也一个不漏吗?

类型对不上的可以修改

[此贴子已经被作者于2006-6-4 21:35:01编辑过]


作者: xhcb    时间: 2006-6-5 05:48
SELECT sheet1.*, sheet2.*
FROM sheet1 LEFT JOIN sheet2
ON sheet1.f3 = sheet2.f3
UNION ALL SELECT sheet1.*, sheet2.*
FROM sheet1 RIGHT JOIN sheet2
ON sheet1.f3 = sheet2.f3
WHERE sheet1.f3 IS NULL;


这样行不行?
作者: nxjswt    时间: 2006-6-5 05:56
SELECT Sheet1.F1, Sheet1.F2, Sheet2.F1, Sheet2.F2, Sheet2.F3
FROM Sheet2 RIGHT JOIN Sheet1 ON Sheet2.F3=Sheet1.F3
ORDER BY Sheet2.F3 DESC;
UNION ALL
SELECT Sheet1.F1, Sheet1.F2, Sheet2.F1, Sheet2.F2, Sheet2.F3
FROM Sheet2 LEFT JOIN Sheet1 ON Sheet2.F3=Sheet1.F3
ORDER BY Sheet2.F3 DESC;

作者: xhcb    时间: 2006-6-5 06:13
谢了,终于搞定。

可是结果中有些重复项,怎么去除重复项呢?

[此贴子已经被作者于2006-6-4 22:14:51编辑过]


作者: nxjswt    时间: 2006-6-5 06:29
SELECT Sheet1.F1, Sheet1.F2, Sheet2.F1, Sheet2.F2, Sheet2.F3
FROM Sheet2 RIGHT JOIN Sheet1 ON Sheet2.F3=Sheet1.F3
ORDER BY Sheet2.F3 DESC;
UNION SELECT Sheet1.F1, Sheet1.F2, Sheet2.F1, Sheet2.F2, Sheet2.F3
FROM Sheet2 LEFT JOIN Sheet1 ON Sheet2.F3=Sheet1.F3
ORDER BY Sheet2.F3 DESC;

作者: xhcb    时间: 2006-6-5 06:47
再次感谢。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3