当前位置:操作系统 > Unix/Linux >>

外连接查询语句

外连接查询语句
 
//查询某个资源表里面的符合要求的列表 
select * from resource 
where organization=6 and type=2 and del_flag=0; 
  www.zzzyk.com  
//查询岗位课程里的已经配置好的课程列表 
select * from job_course 
where organization=6 and source=2 and del_flag=0; 
 
//查询没有配置好的资源列表(XXXX错误) 
select * from job_course jc WHERE jc.organization=6 and jc.del_flag=0 RIGHT OUTER JOIN resource r where r.organization=6 and r.del_flag=0 on jc.course=r.id and jc.source=2 where jc.id is null; 
 
//查询没有配置的资源列表,注意下面我使用的是右连接哟,但是我是先过滤符合条件的岗位课程列表和符合条件的资源列表,设想一下这样过滤之后再进行外连接的匹配则效率高了很多,--------- 
  www.zzzyk.com  
则接下来的疑问是这样过滤会不会去掉一些数据啊,剩余的数据做外连接,对,是的,因为过滤资源是对的,(首先我要找到符合条件的全部的资源,不论是添加的还是未添加的,都给查询出来,然后再去掉已经添加(WHERE tjc.id IS NULL)的就OK了) 
SELECT * FROM 
(SELECT * FROM job_course WHERE organization=6 and del_flag=0 and source=2) AS tjc 
RIGHT OUTER JOIN 
(SELECT * FROM resource WHERE organization=6 and del_flag=0 and type=2) AS tr 
ON tjc.course = tr.id 
WHERE tjc.id IS NULL; 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,