WEB开发网
开发学院数据库MySQL Mysql入门系列:检索MYSQL记录 阅读

Mysql入门系列:检索MYSQL记录

 2006-12-31 10:46:29 来源:WEB开发网   
核心提示: 在有了一定的经验后,可将这些经验用于新问题,Mysql入门系列:检索MYSQL记录(2),您会发现自己思考问题类似于,“噢,即使各表很小,所得到的行数也会很大,是的,它就是一个LEFT JOIN 问题

在有了一定的经验后,可将这些经验用于新问题,您会发现自己思考问题类似于,“噢,是的,它就是一个LEFT JOIN 问题。”或者,“啊哈,这就是一个受各对索引列制约的三路线连接。”(指出这一点,实际上我也感到有点不愿意。听到经验有帮助,您可能受到一定的鼓舞。另外,考虑到您最终能那样思考问题也会令自己有点惊讶。)下几节中介绍怎样利用MySQL支持的连接操作的格式,多数例子使用了下面的两个表。它们很小,很简单,足以很清楚地看出每种连接的效果。

3.6.1平凡连接

最简单的连接是平凡连接( trivial join),这种连接中只指定一个表。在此情况下,行从指定的表中选择。如:

有的作者根本就不考虑这种SELECT 连接的形式,仅对从两个或多个表中检索记录的SELECT 语句使用“连接”这个术语。本人认为那只是看法不同而已。

 3.6.2 全连接

 如果指定多个表,将各个表名用逗号分隔,就指定了全连接。例如,如果连接两个表,来自第一个表中的每行与第二个表中每行进行组合:

全连接也称为叉连接,因为每个表的每行都与其他表中的每行交叉以产生所有可能的组合。这也就是所谓的笛卡儿积。这样连接表潜在地产生数量非常大的行,因为可能得到的行数为每个表中行数之积。三个分别含有10 0、2 0 0、3 0 0行的表的全连接将产生10 0×2 0 0×3 0 0= 6百万行。即使各表很小,所得到的行数也会很大。在这样的情形下,通常要使用WHERE

上一页  1 2 3 4  下一页

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接