Access不支持全外连接!? (200分)

D

doxpix

Unregistered / Unconfirmed
GUEST, unregistred user!
如下SQL语句在AccessXP中不能执行:
select * from a FULL OUTER JOIN b ON a.ID = b.ID
 
不知道全外连接是什么意思?讲一讲好吗?
 
full outer join
好像是没有,用作连接或右连接吧
select * from a Left/Rigth JOIN b ON a.ID = b.ID
 
LEFT OUTER JOIN
RIGHT OUTER JOIN
的确是可以的,但FULL就不行了.
to antic_ant,
外部联接就是--
一个联接,将一个表的所有记录都添加到 Recordset 对象上,即使在第二个表中的
联接字段没有匹配值。只有当联接字段中存在匹配值时,第二个表的记录才会与第一
个表的记录组合。当没有匹配记录时,联接 Null 记录。
 
to do
xpix
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
各是什么意思?
另外上面三个对应的内连接是什么意思
另外加分(100)
 
LEFT OUTER JOIN -- 左(外)联接,等同LEFT JOIN
RIGHT OUTER JOIN -- 右(外)联接,等同RIGHT JOIN
FULL OUTER JOIN -- 全(外联接),等同FULL JOIN
INNER JOIN --内联接,也叫自然联接,等同JOIN
没有
LEFT INNER JOIN
RIGHT INNER JOIN
FULL INNER JOIN
分数不用了.
 
如果来自不同表的数据无法满足join条件者则丢弃,为 inner join
在 inner join 中参与join的表地位是相等的
outer join的两个表有主从之分,outer join 的处理方式是主表的每条数据去
match 从表的列,合乎条件的是我们要的
sql server 提供的 left join ,right join 作为outer join
left join 左边的表为主,反之
full join 不仅列出符合条件的,未符合的也会一并列出,如果无法得到对应值则用
null表示
在access里没有full join
 
left join
right join
 
Select *
From (Select *
From (Select id as tmpid from Table1 Union Select id as tmpid from Table2) AA
Left outer join Table1 BB
On AA.tmpid=BB.id) CC
Left outer join
Table2 DD
On CC.tmpid=DD.id
如上面的弟兄所说,Access中没有Full outer join,但可以通过其它方式得到Full的效果。
 
QuickSilver,
union不支持选择Memo字段,如果选择的两个表里有memo字段就无法用
union+left join+right join来达到full join的效果.
 
也可用下面的方法,不过比较繁琐
Select id,
(Select Field1 From Table1 Where id=AA.id) as Afield1,
(Select Field2 From Table1 Where id=AA.id) as Afield2,
(Select Field3 From Table1 Where id=AA.id) as Afield3,
....... ,
(Select Field1 From Table2 Where id=AA.id) as Bfield1,
(Select Field2 From Table2 Where id=AA.id) as Bfield2,
(Select Field3 From Table2 Where id=AA.id) as Bfield3,
........
From
(Select id as tmpid from Table1
Union
Select id as tmpid from Table2) AA
 
多人接受答案了。
 

Similar threads

回复
0
查看
921
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
773
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部