吉祥夜最新小说鼹鼠:请教这两个SQL语句的区别

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 23:31:38
这个是内连接
select 字段1.... from 表1 inner join 表2 on where 表1.a1=表2.a2
这个是叫什么?
select 字段1.... from 表1,表2 where 表1.a1=表2.a2
并且二者取出的记录是相同的,但有什么区别?

其实也没有什么区别

JOIN 分为内连接,外连接(左外连接,右外连接,全外连接)

内连接: SELECT A.* FROM A INNER JOIN B ON A.ID=B.ID

左外连接: SELECT A.* FROM A LEFT JOIN B ON A.ID = B.ID

右外连接: SELECT A.* FROM A RIGHT JOIN B ON A.ID = B.ID

全外连接: SELECT A.*, B.* FROM A FULL OUTER JOIN B ON A.ID = B.ID

任何可在Where子句中使用的条件式都可以适用在join条件式下,
inner join是从两个或以上的表组合中选出符合条件的数据,如果来自不同表的数据无法满足join条件则丢弃,等同于join.

INNER JOIN是组合两个表最常用的方法。INNER JOIN是基于一个判别式进行的,这个判别式称为连接条件。连接条件和WHERE子句一起定义。连接条件由来自两个表中的列组成,并使用一个比较条件来对列的值进行比较。通过比较的值包含在结果数据集中,以下是Inner JOIN的语法:语法1:(ANSI 92) Select FROM INNER JOIN ON . = . 语法2: Select FROM , WHERE . = . 在FROM 子句中可为表定义别名,并在任何地方都可用别名代替真名。注意:如果作为连接条件的列中有空值,则空值不能和任何值匹配,因此结果中不包含有空值的行。

不相同的。如果两个表格的数据是一一对应的,那表现出来的就没什么区别,如果两个表格中的数据一个多,一个少就有问题了。
两者的分别就是以前面的表格为主 还是以后面的表格为主。
当一个表格中有数据 另外一个中没有的时候。那个表格为主就决定了这个数据会不会被丢弃。主要表格中的数据会全部显示,如果次要表格没有匹配数据,则相应内容为空。但是如果次要表格中有个数据,主要表格中没有相应匹配的数据,那么此数据不会显示。

长见识!