日期:2014-05-16  浏览次数:20927 次

请教用join链接表和用“逗号”链接表之间区别的问题
我用
select   *   from   TABLE_A   ,   TABLE_B   left   join   TABLE_C   on   (TABLE_B.id   =   TABLE_C.id)
where   TABLE_A.id   =   TABLE_B.id


为什么说我连接式不支持

改成这样就可以了
select   *   from   (TABLE_A   left   join   TABLE_B   on   (TABLE_A.id   =   TABLE_B.id))   left   join   TABLE_C   on   (TABLE_B.id   =   TABLE_C.id)
where   TABLE_A.id   =   TABLE_B.id

到底join和逗号使用区别是什么?


------解决方案--------------------
在 SQL-92 标准中,内联接可在 FROM 或 WHERE 子句中指定。

这是 WHERE 子句中唯一一种 SQL-92 支持的联接类型。

WHERE 子句中指定的内联接称为旧式内联接。


如果一个SQL中需要用left join ,则SQL中不能用带逗号的旧式内连接。

并且,Access中多个表关联时,每增加一个表,需要增加一对()



------解决方案--------------------
select *
from (TABLE_A
left join TABLE_B on TABLE_A.id = TABLE_B.id)
left join TABLE_C on TABLE_B.id = TABLE_C.id

------解决方案--------------------
ACCESS和MS SQL的關聯有些區別,在多個表關聯的時候,需要將前面的關聯語句用括號括起來,MS SQL就可以不需要。
------解决方案--------------------

Access使用的是Jet-SQL。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=