是这样的
A表:用户表 B表:申请表B表中有个APPLICANT_IDS字段保存的是用户表的ID连起来的字符串,如 ,1,2,3, 或者 ,3,4,5,我现在想做的是通过关联A和B两个表 ,统计每个用户总共出现在在B表的APPLICANT_IDS多少次我本来的做法是SELECT
JZXX.SYS_USER.USERID,
JZXX.T_APPLY.STU_YEAR_ID,
COUNT(JZXX.T_APPLY.ID) AS COUNT_APPLY
FROM
JZXX.T_APPLY ,
JZXX.SYS_USER
WHERE
','||T_APPLY.APPLICANT_IDS||',' LIKE '%,'||SYS_USER.USERID||',%'
GROUP BY
JZXX.SYS_USER.USERID,
JZXX.T_APPLY.STU_YEAR_ID
但这样用Like查询做得非常的慢,要个6到7秒,A表只有2W条数据左右,B表有400多条。请大家指导下,可以如何改进?
A表:用户表 B表:申请表B表中有个APPLICANT_IDS字段保存的是用户表的ID连起来的字符串,如 ,1,2,3, 或者 ,3,4,5,我现在想做的是通过关联A和B两个表 ,统计每个用户总共出现在在B表的APPLICANT_IDS多少次我本来的做法是SELECT
JZXX.SYS_USER.USERID,
JZXX.T_APPLY.STU_YEAR_ID,
COUNT(JZXX.T_APPLY.ID) AS COUNT_APPLY
FROM
JZXX.T_APPLY ,
JZXX.SYS_USER
WHERE
','||T_APPLY.APPLICANT_IDS||',' LIKE '%,'||SYS_USER.USERID||',%'
GROUP BY
JZXX.SYS_USER.USERID,
JZXX.T_APPLY.STU_YEAR_ID
但这样用Like查询做得非常的慢,要个6到7秒,A表只有2W条数据左右,B表有400多条。请大家指导下,可以如何改进?
2。like 是无法使用索引的,肯定也慢
数据库不是很熟悉。