什么时候用outer join和inner join
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/19 02:51:02
什么时候用outer join和inner join
先说一下概念哈:
内连接:当实现同等连接和非同等连接时,分别使用等于和不等于运算符表示的连接条件,匹配源表和目标表中的行,这些连接称为内连接(inner join)
外连接:当返回内连接没有包含的行时实现外连接.外连接分为:左外连接,右外连接,全外连接.
下面具体来说哈:你是知道HT模式的吧?
在这个模式中.DEPARTMENTS表存储DEPARTMENT_NAME和DEPARTMENT_ID值得主列表.每个EMPLOYEES记录有一个DEPARTMENT_ID列,它被限制为DEPARTMENTS表中的值或者空值.这将导致出现下面三种情况之一.如果删除表之间的限制,则会出现第四种情况、
·1、员工行有DEPARTMENT_ID值,它匹配DEPARTMENTS表中的行.
2、员工行的DEPARTMENT_ID列是空值.
3、DEPARTMENTS表中有一些行,它们包含DEPARTMENT_ID值,但这些值没有存储在任何员工记录中.
4、员工行有DEPARTMENT_ID的值,但它不再DEPARTMENTS表中.
使用两表间的自然内连接检索匹配第1种情况的行.第2种和第3种情况导致许多问题.因为这些行被内连接排除在外,可以使用外连接在结果集中包含这些孤立行.第4种情况在设计良好的数据库中很少出现,因为外间约束会阻止插入没有父值得子记录.因为内连接会排除这一行,所以可以用外连接来检索它.、
不知道你明白没有.
再问: 这么深奥。。。其实是个写语句的题 select xuesheng.姓名, xuesheng.学号 from xuesheng inner join chengji on …… 有的时候 inner join 也 被 left outer join 代替。。。不知道为什么?? 当用outer join 时,有什么特殊的标志吗??
再答: 嗨,你要早这么问多好。具体问题具体分析,才是硬道理。呵呵…… 我们这样来看哈:有两个表,一个是源表,称为A表;一个是目标表,称为B表。一般来说,比较完美的组合就是,A表中的每一条记录,在B表中都有能与之匹配的一行。比如说,A表是学生的基本信息表(假设学生的人数为10人),包含学生的姓名,学号。B表是学生的成绩表,包含学生的学号,成绩。这两个表共享学号这一列,也是因为学号这一列才使得这两个表有了联系。那现在,写SQL语句如下: SELECT A.name "姓名",A.number "学号",B.sccot "成绩" FROM A INNER JOIN B ON(A.number=B.number);你将得到10行信息。也就是说全部都返回了。这个时候,你用LEFT OUTER JOIN来替换得到的结果是一样的。 但是,如果A表中有一行在B表中没有与之匹配的行的话(称这样的行 为W),你用INNER JOIN 来连接的话,第W行,是不会显示在返回结果中的。但是,这个时候,你用LEFT OUTER JOIN的话,W这一被孤立的行,将会显示在返回结果中。 不知道,这样说,你明白没有。 总之哈,就是说,当两表用内连接来查询的时候,将会有你需要的孤立行不能被显示在返回结果中时,你就应该用OUTER JOIN 啦。前面也说了,OUTER JOIN 分为三种,分别是 LEFT OUTER JOIN (左表中被孤立的行,会被显示在结果中) , RIGHT OUTER JOIN(右表中被孤立的行,会被显示在结果中). FULL OUTER JOIN. (两表中被孤立的行,都会被显示在结果中) 如果还不明白,欢迎追问。呵呵……加油!
内连接:当实现同等连接和非同等连接时,分别使用等于和不等于运算符表示的连接条件,匹配源表和目标表中的行,这些连接称为内连接(inner join)
外连接:当返回内连接没有包含的行时实现外连接.外连接分为:左外连接,右外连接,全外连接.
下面具体来说哈:你是知道HT模式的吧?
在这个模式中.DEPARTMENTS表存储DEPARTMENT_NAME和DEPARTMENT_ID值得主列表.每个EMPLOYEES记录有一个DEPARTMENT_ID列,它被限制为DEPARTMENTS表中的值或者空值.这将导致出现下面三种情况之一.如果删除表之间的限制,则会出现第四种情况、
·1、员工行有DEPARTMENT_ID值,它匹配DEPARTMENTS表中的行.
2、员工行的DEPARTMENT_ID列是空值.
3、DEPARTMENTS表中有一些行,它们包含DEPARTMENT_ID值,但这些值没有存储在任何员工记录中.
4、员工行有DEPARTMENT_ID的值,但它不再DEPARTMENTS表中.
使用两表间的自然内连接检索匹配第1种情况的行.第2种和第3种情况导致许多问题.因为这些行被内连接排除在外,可以使用外连接在结果集中包含这些孤立行.第4种情况在设计良好的数据库中很少出现,因为外间约束会阻止插入没有父值得子记录.因为内连接会排除这一行,所以可以用外连接来检索它.、
不知道你明白没有.
再问: 这么深奥。。。其实是个写语句的题 select xuesheng.姓名, xuesheng.学号 from xuesheng inner join chengji on …… 有的时候 inner join 也 被 left outer join 代替。。。不知道为什么?? 当用outer join 时,有什么特殊的标志吗??
再答: 嗨,你要早这么问多好。具体问题具体分析,才是硬道理。呵呵…… 我们这样来看哈:有两个表,一个是源表,称为A表;一个是目标表,称为B表。一般来说,比较完美的组合就是,A表中的每一条记录,在B表中都有能与之匹配的一行。比如说,A表是学生的基本信息表(假设学生的人数为10人),包含学生的姓名,学号。B表是学生的成绩表,包含学生的学号,成绩。这两个表共享学号这一列,也是因为学号这一列才使得这两个表有了联系。那现在,写SQL语句如下: SELECT A.name "姓名",A.number "学号",B.sccot "成绩" FROM A INNER JOIN B ON(A.number=B.number);你将得到10行信息。也就是说全部都返回了。这个时候,你用LEFT OUTER JOIN来替换得到的结果是一样的。 但是,如果A表中有一行在B表中没有与之匹配的行的话(称这样的行 为W),你用INNER JOIN 来连接的话,第W行,是不会显示在返回结果中的。但是,这个时候,你用LEFT OUTER JOIN的话,W这一被孤立的行,将会显示在返回结果中。 不知道,这样说,你明白没有。 总之哈,就是说,当两表用内连接来查询的时候,将会有你需要的孤立行不能被显示在返回结果中时,你就应该用OUTER JOIN 啦。前面也说了,OUTER JOIN 分为三种,分别是 LEFT OUTER JOIN (左表中被孤立的行,会被显示在结果中) , RIGHT OUTER JOIN(右表中被孤立的行,会被显示在结果中). FULL OUTER JOIN. (两表中被孤立的行,都会被显示在结果中) 如果还不明白,欢迎追问。呵呵……加油!
什么时候用outer join和inner join
SQL中 inner join、 left join 、right join、 outer join之间的区别
join和inner join的区别?
left join和inner join的区别
数据库的问题:解释inner join,left outer join ,cross join
sql表连接查询的区别`inner join、left join、rightjoin、outer join举例说明·
left outer join和left join有区别?
left join 和 left outer join 的区别
left join 和 left outer join 有什么区别?
inner join,left join,right join,full join 的区别?最好用例子说明!
在vf中怎么了解什么时候用inner join什么时候用where
inner join的用法