问题是这样的:
网店表website(websiteid,websitename),
主营业务表major(id,websiteid,majorbiz)
其中major.websiteid和website.websiteid关联。
一个网店有多个主营业务.
主营业务有大类, 或是小类(用大类 | 小类)表示.
现在要显示全部网店的名称和主营业务(有小类的只显示小类名).
比如给这样的数据:
website
websiteid    websitename
101          网店1
102          网店2
103          网店3major
id         websiteid      majorbiz
1          101            数码 | 数码相机
2          101            数码 | 数码摄像机
3          102            电脑整机
4          102            数码
5          103            电脑整机
6          103            数码 | 数码相机要生成如下的列表
website_major
websiteid    websitename      majorbiz
101          网店1            数码相机,数码摄像机
102          网店2            电脑整机,数码
103          网店3            电脑整机,数码相机请各位高手指教!!!

解决方案 »

  1.   

    写function行不? Oracle的function怎么写?
      

  2.   

    mysql中解决:select w.websiteid,w.websitename, group_concat(m.majorbiz )from major m,website w where m.websiteid=w.websiteid  
      

  3.   

    oracle:  select * from (select websiteid,websitename,ltrim(max(sys_connect_by_path(contact_phone, ',')), ',') as majorbiz from    
        (select row_number() over(partition by w.websiteid order by w.websiteid ) rn,w.websiteid,w.websitename,m.majorbiz from major m,website w where m.websiteid=w.websiteid(+)) 
        start with rn = 1  connect by prior rn = rn - 1 group by websiteid,websitename,majorbiz)