1.交叉查询(笛卡尔积)
交叉查询,又称“迪尔卡连接”或“叉乘”,是所有类型的内连接的基础。
交叉连接(cross join)语法:
select fieldlist from table1[inner]join table 2 on table1.column1=table 2.column 2[where condition]
说明:
(1)fieldlist:table1表和table2表中的字段列。如果取两张表所有列,则可用“*”代替,此时会出现连接依据列重复,即table1表的column1与table2表的column2为重复列。
(2)table1[inner]join table2:将table1表与table2表进行内连接,inner可以省略。
(3)table1.column1=table2.column2:连接条件,其中column1和column2为table1表与table2表的关系列,通常他们为外键列和主键列。
2.自然连接
自然连接是一种特殊的内连接,他要求相连接的两张表的连接依据列必须是相同的字段(字段名相同,字段属性相同)。
自然连接(natural join)语法:
select fieldlist from table1 natural join table 2[where condition]
3.多表连接查询方法
语法:select fieldlist from table1 join table2 on table 1.column1=table2.column2_1 join table3 on table2.column2_2=table3.column3[where condition]
说明:(1)table1与table2和table3两两相连
(2)三表以上连接查询的方法与三表连接查询的方法一样,均是通过两两相连的方式实现
4.简单多表连接查询
语法:(1)select fieldlist from table1,table2 where table1.column1=table2.column2[and 其他条件]
(2)select fieldlist from table1,table2,table3 where table1.column1=table2.column2_1 and table2.column2_2=table3.column3[and 其他条件]