一张 邮件信息表 (截取关键字段)
标题 收件人
XXX zhangsan;lisi;wangwu;
XXX2 zhaoliu;momo;
... ...
一张 联系人表 (截取关键字段)
用户名 用户真实姓名
zhangsan 张三
lisi 李四
... ...希望得到 一个邮件列表 在web中显示
标题 收件人
XXX zhangsan(张三);lisi(李四);wangwu(王五);
XXX2 zhaoliu(张柳);momo;
... ...要求:由于是列表,从性能上考虑,不希望每条记录都另做处理,希望用一条sql就能查询到这个列表,各位有什么好的想法吗?包括数据库设计方面的更改,hibernite方面都可以修改。
标题 收件人
XXX zhangsan;lisi;wangwu;
XXX2 zhaoliu;momo;
... ...
一张 联系人表 (截取关键字段)
用户名 用户真实姓名
zhangsan 张三
lisi 李四
... ...希望得到 一个邮件列表 在web中显示
标题 收件人
XXX zhangsan(张三);lisi(李四);wangwu(王五);
XXX2 zhaoliu(张柳);momo;
... ...要求:由于是列表,从性能上考虑,不希望每条记录都另做处理,希望用一条sql就能查询到这个列表,各位有什么好的想法吗?包括数据库设计方面的更改,hibernite方面都可以修改。
select bb.a,
replace(wm_concat(aa.用户名 || decode(aa.真实姓名, '', '', '(' || aa.真实姓名 || ')')),
',',
';') || ';'
from (SELECT 标题, REGEXP_SUBSTR(收件人, '[^;]+', 1, l) AS b
FROM 邮件信息表, (SELECT LEVEL l FROM DUAL CONNECT BY LEVEL <= 30)
WHERE l <= LENGTH(收件人) - LENGTH(REPLACE(收件人, ';')) + 1) bb,
联系人表 aa
where aa.用户名 = bb.b
group by bb.a