(三)交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等 于6*8=48行。 SELECT type,pub_name FROM titles CROSS JOIN publishers ORDER BY type
SQL语言详解 -------------------------------------------------------------------------------- Visual FoxPro的诸多特色之一便是结构化查询语言(Structured Query Language)。SQL此一语言提供了用来建立、维护几查询一个关系数据库管理系统的命令。 1.SQL的SELECT命令 SQL有许多重要的层面,但是其语言的核心则依靠数据查询与查询结果的快速回报。对某些使用者而言,他很可能仅使用到SQL此一层面。在SQL中,所有的查询(Query)操作完全由SELECT命令独立完成。 SELECT是一个用来从一个或一个以上的表获取数据的SQL命令。当您使用SELECT命令进行一个查询时,Visual FoxPro会解译此查询并从表中获取指定的数据。SELECT命令叙述可简可繁,命令行的长度依据查询的复杂度而定。它能够包含数据字段、常数值、内存变量、运算式、函数或宏。然而,SQL的SELECT终究还是一个命令,因此其单一命令叙述最长不可超过8192个符号。而任何使用在SELECT命令中的宏替换最大亦不可超过8192个符号。 或许有人会问,此SELECT命令不是与切换工作区用的SELECT命令相同吗?关于此点您大可放心,因为Visual FoxPro不仅是快速,它更是聪明,它会自动分辨您所使用的究竟是SQL之SELECT或是切换工作区的SELECT。
SQL之SELECT命令的语法如下: SELECT[ALL DISTINCT] [TOP nExpr [PERCENT]]
[Alias.] Select_Item [AS Column_Name]
[,[Alias.] Select_Item [AS Column_name]…]
FROM [FORCE]
[DatabaseName!]Table[[AS]Local_Alias]
[[INNer LEFT[OUTER] RIGHT[OUTER] FULL [OUTER]JOIN
DatabaseName!]Table[[AS] Local_Alias]
[ON JoinCondition…]
[[INTO Destination]
[TO FILE FileName [ADDITIVE] TO PRINTER [PROMPT]
TO SCREEN]]
[PREFERENCE PreferenceName]
[NOCONSOLE]
[PLAIN]
[NOWAIT]
[WHERE JoinCondition [AND JoinConditiion…]
[ AND OR FilterCondition [AND OR FilterCondition…]]]
[GROUP BY GroupColumn [, GroupColumn…]]
[HAVING FilterCondition]
[UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASC Desc][,Order_Item [ASC DESC]…]] 命令的使用方式与其它 Visual FoxPro 之内建立指令相同。您可以于命令的视窗、程序或事件程序中使用此命令。