表a 表b(a,b的关联表) 表c
id_a , 字段a1 ,字段a2 id_a ,id_b id_b ,字段c1 ,字段c2 要求显示如下效果:
字段a1 字段a2 字段c1(有则显示无则显示为空)我是这样写的: 如果表b中有关联则可以查出来 ,但是我想要没有关联,也要把a表数据显示出来只是让字段c2为空就行了。 SELECT Operatormanagement.* , Rightsgroup.R_Name FROM Operatormanagement, Rightsgroup,UserrolesAssociate
where Operatormanagement.om_ID=UserrolesAssociate.Operatormanagement_ID
AND UserrolesAssociate.Rightsgroup_ID=Rightsgroup.R_ID
AND Operatormanagement.om_Status=5 请高手帮帮忙啊!
id_a , 字段a1 ,字段a2 id_a ,id_b id_b ,字段c1 ,字段c2 要求显示如下效果:
字段a1 字段a2 字段c1(有则显示无则显示为空)我是这样写的: 如果表b中有关联则可以查出来 ,但是我想要没有关联,也要把a表数据显示出来只是让字段c2为空就行了。 SELECT Operatormanagement.* , Rightsgroup.R_Name FROM Operatormanagement, Rightsgroup,UserrolesAssociate
where Operatormanagement.om_ID=UserrolesAssociate.Operatormanagement_ID
AND UserrolesAssociate.Rightsgroup_ID=Rightsgroup.R_ID
AND Operatormanagement.om_Status=5 请高手帮帮忙啊!
你所指的没有关联的是 表A中有表B中没有的数据对吗?
如果是的话
关联字段 not in (select 关联字段 from 表B)
from a inner join b on a.bid=b.id(a.bid与b.id达成外键关系或者隐式引用)
left join c on b.cid=c.id(b.cid与c.id达成外键关系或者隐式引用)
where 条件
如果 b 有空,则反向.
right join
1。使用left join,上面已有描述。2。使用子查询,大致为:
select a.* , (select b.r_name from Rightsgroup b , c where a.om_ID = c.Operatormanagement_ID and c.Rightsgroup_ID = b.R_ID and )
from Operatormanagement a where a.om_Status=5