Simple Joins:
使用符号‘=’相连2个表。属于内连接(inner join),因为只返回满足连接条件的数据。
Complex Joins:
除了在where中使用join 条件,还可以在where中添加限制条件。
注意:当alias name定义好之后,只能使用alias name。
Using ANSI Syntax:
NATURAL [INNER] JOIN
这种自然连接,根据2个表中具有同样名称的column,来连接多个表。
等同于使用符号‘=’,来连接表。
注意不能使用qualify the column name。
如果使用select * ,common columns只列出一个。
[INNER] JOIN USING ()
指定某一个column name来连接多个表。
不可以qualify table name 或者table alias
[INNER] JOIN ON
如果多个表之间,没有相同名字的column name。或者想自定义连接条件,那么可以使用join on。同样可以使用qualify column name 或者alias name。
如果2个表中的column名是一样的,那么必须qualify column name。
Multi-Table Joins:加入多个条件,多表连接。
Cartesian Joins:
尽量避免笛卡尔连接,一般有n个表,至少保持n-1个
Using ANSI Syntax:
cross join
Outer Joins:
外连接的作用就是返回表中的所有条目数据,即使这些数据不符合条件。
(+)符号的那一边返回符合条件的条目语句。另一边返回所有数据。
注意:若where 中的条件,A表使用了(+),那么where中涉及A表的另外一些约束也必须(+),否则(+)将被忽略。
不能使用or或者in ,与(+)联用。
Using ANSI Syntax:
Left Outer Joins:
例子:
Select column1,column2
From table_1 LEFT OUTER JOIN table_2
On table_1.column1=table2.column2
左边table_1返回所有数据。
Right Outer Joins:
同上。
Full Outer Joins:
例子:
Select column1,column2
From table_1 FULL OUTER JOIN table_2
On table_1.column1=table2.column2
或
Select column1,column2
From table_1, table_2
Where table_1.column1(+)=table2.column2
Union
Select column1,column2
From table_1, table_2
Where table_1.column1=table2.column2(+)
默认都是inner类型,若定义outer join,那么必须明确LEFT,RIGHT,FULL
Other Multiple-Table Queries:
Self-joins:
自连接可以使用ANSI syntax , 只能使用JOIN ..ON syntax
注意:NATURAL JOIN 和 JOIN ...USING 不能使用。
Nonequality Joins:
大于号,小于号连接表。
Using Set Operators:
Union:返回任意结果
Union all:返回所有重复结果
Intersect:返回2个查询结果的重复记录。
Minus:返回一个,但不返回另一个。
Subqueries:
最内层子查询最先执行。
From中可以包含inline views
Single-Row Subqueries:
例子:在子查询中使用max(),
Multiple-Row Subqueries:
例子:select column
From table
Where column in (select column1 from table2 where column2=’111’)
Correlated Subqueries:
见http://chenai79921.itpub.net/post/40195/490991
Scalar Subqueries:
不可以在group by或者having 语句中使用。
例子:
Select (Scalar subqueries)
From table
Where (Scalar subqueries)
Order by (Scalar subqueries)
[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11997930/viewspace-1027884/,如需转载,请注明出处,否则将追究法律责任。
![user_pic_default.png](http://blog.itpub.net/images/user_pic_default.png)
<%=items[i].content%>
<%if(items[i].items.items.length) { %><%=items[i].items.items[j].username%> 回复 <%=items[i].items.items[j].tousername%>: <%=items[i].items.items[j].content%>
转载于:http://blog.itpub.net/11997930/viewspace-1027884/