首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

#数据库相干问答

2012-11-07 
#数据库相关问答数据库索引的作用和注意点④ 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object

#数据库相关问答

数据库索引的作用和注意点

④ 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误

?

再来一个比较强悍的贴(一下唤醒了我本科的数据库课...)原文:http://hi.baidu.com/kevinstudio2003/blog/item/45a67f37fffc943d0a55a9c0.html

?

FROM语句之结合条件

分为INNER JOIN,LEFT JOIN,RIGHT JOIN。结合条件一般分为内部结合和外部结合,INNER JOIN是内部结合,后两者为外部结合。LEFT就是表示全部保留左边表,RIGHT JOIN全部保留左边表。

条件式用ON来指定,如果多个条件,则用AND来连接

--例子:表foo和表bar以foo.a = bar.a 来实现内部结合

SELECT * FROM foo INNER JOIN bar ON foo.a = bar.a

三个以上的结合

三个以上表的结合是先结合两个表,然后将结果当作一个表再与另一个表结合。

--例子:将foo , bar , more 三表结合

SELECT * FROM ( foo INNER JOIN bar ON foo.a = bar.a )

INNER JOIN more ON foo.a = more.a

LEFT JOIN和 RIGHT JOIN

使用LEFT JOIN 和 RIGHT JOIN时,一定要注意位置。“foo LEFT JOIN bar ”就是将左边的foo表的所有行保留,匹配不上的显示NULL。反之,“foo RIGHT JOIN bar”就是将右侧的bar表全部保留,匹配不上的显示NULL。

--例子:将foo , bar 两表左结合



图1

FULL OUTER JOIN

完整外部连接,取包含所有左侧内容和右侧内容的数据。

需要注意的是MySQL,Access不能使用此功能

--例子:取上图foo,bar两表之FULL OUTER JOIN

SELECT * FROM foo FULL OUTER JOIN bar ON foo.a = bar.a

结果是:



图2

CROSS JOIN

交叉结合,取结合之表的全行数据,就好象是在连接两个表格时忘记加入一个WHERE子句一样。交叉结合时,没有结合条件。

注意,DB2,ACCESS不能使用此语句

--例子:取图1中foo,bar两表交叉结合。

SELECT * FROM foo CROSS JOIN bar

结果是:


图3

?

热点排行