sql1999语法
CROSS JOIN 等同于92的笛卡尔积
select * from table1 cross join table2
NATURAL JOIN 相当于等值连接,不需要连接条件,会从两张表找到相同的列做连接
当两张表不具备相同列名时,会进行笛卡尔积操作等同于cross join
select * from table1 tb1 natural join table2 tb2 on tb1.column=tb2.column
ON子句 添加连接条件,相当于92中的等值连接
select * from table1 t1 join table2 t2 on t1.column=t2.column
相当于92中的非等值连接
select * from table1 t1 join table2 t2 on t1.column between t2.column1 and t2.column2
LEFT OUTER JOIN 会把左表中的数据全部正常显示,右表没有对应则为空
select * from table1 t1 left outer join table2 t2 on t1.column = t2.column
select * from table1 t1 ,table2 t2 where t1.column = t2.column(+)
RIGHT OUTER JOIN 会把右表中的数据全部正常显示,左表没有对应则为空
select * from table1 t1 right outer join table2 t2 on t1.column= t2.column
select * from table1 t1 ,table2 t2 where t1.column(+) = t2.column
FULL OUTER JOIN 相当于左外连接和右外连接
select * from table1 t1 full outer join table2 t2 on t1.column= t2.column
INNER OUTER JOIN 两张表的连接查询,只会查询出有匹配记录的数据
select * from table1 t1 inner join table2 t2 on t1.column = t2.column
select * from table1 t1 join table2 t2 on t1.column= t2.column
USING 除了可以使用on表示连接条件之外,也可以使用using作为连接条件,不允许查询的字段有任何前缀
select * from table1 t1 join table2 t2 using(column)
select * from bjb join h123 on bjb.xh=h123.xh
总结两种语法的SQL语句没有任何限制,可以随便用,但是建议使用99语法,不要使用92语法,SQL语句显得清楚明了
子查询:嵌套在其他sql语句中的完整sql语句,可以称为子查询
分类:
单行子查询
多行子查询