即”(+)”表示所在的列的值,如果没有匹配的值,则加入null值,并显示出来。.
//通常将全量集合与部分集合连接时,在部分集合的列后面带上(+),以达到没有匹配时,也要显示出一个null的效果。
则是左连接,无论这个学生有没有一个能在一个班级中得到匹配的部门号,这个学生的记录都会被显示。
例子:
select p.*,g.state from process_card_procedure p,group_task g where p.process_card_procedure_id=g.process_card_procedure_id(+) and p.process_card_id=431 and p.procedure_no not like '%C%' order by cast(p.procedure_no as int)
表示process_card_procedure表和group_task表的左连接。查询结果部分如下:

上表中的state字段是在group_task表中,连接过程中后面三条记录没有state字段,显示为null,如果不左连接:
select p.*,g.state from process_card_procedure p,group_task g where p.process_card_procedure_id=g.process_card_procedure_id and p.process_card_id=431 and p.procedure_no not like '%C%' order by cast(p.procedure_no as int)
查询结果如下:

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225613.html原文链接:https://javaforall.net
