wm_concat为select语句返回多个相同的内容

时间:2013-01-29 02:13:28

标签: sql oracle

我有这个选择声明:

select m.title, m.category_code, c.company_name, wm_concat(d.director_name),    
wm_concat(a.actor_name) as actors
from
actors a
inner join actor_in_movies aim
on aim.actor_id = a.actor_id
inner join movies m
on m.movie_id = aim.movie_id
inner join movie_directors md
on md.movie_id = m.movie_id
inner join directors d
on d.director_id = md.director_id
inner join companies c
on c.company_id = d.company_id
group by m.title, m.category_code, c.company_name;

并且它为每个演员返回相同的导演名称一次....任何解决这种情况的方法?

也试过这个:

select m.title, cat.description, c.company_name, wm_concat(d.director_name),      
wm_concat(a.actor_name) as actors
from
movie_categories cat
inner join movies m 
on m.category_code = cat.category_code
inner join movie_directors md
on md.movie_id = m.movie_id
inner join directors d
on d.director_id = md.director_id
inner join companies c
on c.company_id = d.company_id
inner join actor_in_movies aim
on aim.movie_id = m.movie_id
inner join actors a 
on a.actor_id = aim.actor_id
group by m.title, cat.description, c.company_name;

结果相同

编辑: 猜猜我只需要多思考,使用不同而且得到它!

select m.title, cat.description, c.company_name, wm_concat(distinct      
d.director_name),      
wm_concat(a.actor_name) as actors
from
movie_categories cat
inner join movies m 
on m.category_code = cat.category_code
inner join movie_directors md
on md.movie_id = m.movie_id
inner join directors d
on d.director_id = md.director_id
inner join companies c
on c.company_id = d.company_id
inner join actor_in_movies aim
on aim.movie_id = m.movie_id
inner join actors a 
on a.actor_id = aim.actor_id
group by m.title, cat.description, c.company_name;

0 个答案:

没有答案