create table d (DID INT ,id INT )
INSERT INTO D
SELECT 1,1
UNION SELECT 2,1
UNION SELECT 3,2
UNION SELECT 4,2
UNION SELECT 5,5
UNION SELECT 6,6
UNION SELECT 7,7
UNION SELECT 8,11
UNION SELECT 9,11
UNION SELECT 10,12
UNION SELECT 11,13
UNION SELECT 12,14
UNION SELECT 13,12
UNION SELECT 14,15
UNION SELECT 15,18
UNION SELECT 16,12
UNION SELECT 17,18
这是栏目表 ID :栏目ID,FID :父栏目ID
create table DO (ID INT ,FID INT)
INSERT INTO DO
SELECT 1 ,NULL
UNION SELECT 2 ,1
UNION SELECT 3 ,2
UNION SELECT 4 ,3
UNION SELECT 5 ,2
UNION SELECT 6 ,2
UNION SELECT 7 ,2
UNION SELECT 8 ,3
UNION SELECT 9 ,6
UNION SELECT 10 ,9
UNION SELECT 11 ,NULL
UNION SELECT 12 ,11
UNION SELECT 13 ,11
UNION SELECT 14 ,12
UNION SELECT 15 ,13
UNION SELECT 16 ,15
UNION SELECT 17 ,15
UNION SELECT 18 ,13
UNION SELECT 19 ,17
select a.aid,Count(distinct did) as Total
from (
select distinct a.id as AiD ,A.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL
UNION
select distinct a.id as AiD,b.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL
UNION
select distinct a.id as AiD,c.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL)
a inner join D on a.iid=d.id
group by a.aid
select a.lmid,count(distinct wdid) as wd_count
from t_lm a left join
t_lm b on a.lmid = b.flmid left join
t_lm c on b.lmid = c.flmid inner join
t_wd d on a.lmid = d.lmid or b.lmid=d.lmid or c.lmid=d.lmid
where a.lm_level = 1
group by a.lmid
能否解释一下
(
select distinct a.id as AiD ,A.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL
UNION
select distinct a.id as AiD,b.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL
UNION
select distinct a.id as AiD,c.id AS iid from DO a inner join DO b on a.id=b.fid inner join DO c on b.id=c.fid WHERE a.fid IS NULL)
表示的意思?