C视图:
ID Pr_ID XH)Name Kind 人员ID GN_Add GN_Update GN_Del
A01 1 房产资源管理 1
A01B01 A01 1 公司简介 2 001 True False True
A01B02 A01 2 小区简介 2 001 True False False
A02 2 客户档案管理 1
A02B01 A02 1 入住管理 2 001 True False True
A02B01 A02 1 入住管理 2 002 False True False
ID Pr_ID XH)Name Kind 人员ID GN_Add GN_Update GN_Del
A01 1 房产资源管理 1
A01B01 A01 1 公司简介 2 001 True False True
A01B02 A01 2 小区简介 2 001 True False False
A02 2 客户档案管理 1
A02B01 A02 1 入住管理 2 001 True False True
A02B01 A02 1 入住管理 2 002 False True False
select A.ID,A.PR_ID,A.XH,A.Name,A.Kind,B.人员ID,B.GN_Add ,B.GN_Update ,B.GN_Del
from A,B
where A.ID=B.GNID(+)
select
A.ID,
A.Pr_ID,
A.XH,
A.Name,
A.Kind,
B.人员ID,
B.GN_Add,
B.GN_Update,
B.GN_Del
from
A表 A
left join
B表 B
on
A.ID = b.GNID
select
A.ID,
A.Pr_ID,
A.XH,
A.Name,
A.Kind,
B.人员ID,
B.GN_Add,
B.GN_Update,
B.GN_Del
from
A表 A
left join
B表 B
on
A.ID = b.GNID
你们都在把A表全部列出来了,但我想在某一个用户在一个功能节点下没有功能,那么该功能节点的以及子节点是不选的.
在SQL Server中可以这样写:
select a.*,人员ID=isnull(b.人员ID,'')
from A left join B on a.ID=b.GNID
where exists(
select * from b where GNID=a.ID or b.GNID like a.ID+'_%')但Oracle不支持这样的写法:
b.GNID like a.ID+'_%'
from A,B WHERE A.ID=B.GNID(+)