javamysqlin_mysqlin集合查询优化问题。问题描述
问题出现的环境背景及⾃⼰尝试过哪些⽅法
user_id 和 physicion 是此表关联的⽤户字段。因为要求上级可看到下级, (99, 166, 96)这个集合是下级⽤户Id集合。
in 查询集合效率太低,不知道有和解决⽅法,集合是从另外⼀个数据库查的所以⽆法关联查询。
相关代码
// 请把代码⽂本粘贴到下⽅(请勿⽤图⽚代替代码)
SELECT
a.id,
a.case_id AS caseId,
a.case_state AS caseState,
a.ealigner_treatment_plan AS ealignerTreatmentPlan,
a.patient_name AS patientName,
a.is_valid AS isValid,
b.fileUrl
FROM
cm_caseinfo AS a
LEFT JOIN cm_filesinfo AS b ON b.caseInfo_id = a.case_id
AND b.fileTypeKey_id = 9
AND b.`status` = 1
WHERE
( a.user_id OR a.physicion IN (99, 166, 96) )
AND a.is_valid = 1
ORDER BY
LIMIT 10
CREATE TABLE cm_caseinfo (
id varchar(50) NOT NULL COMMENT '主键Id',
address varchar(255) DEFAULT NULL COMMENT '地址',
age int(11) DEFAULT NULL COMMENT '年龄(后台计算)',
join和in哪个查询更快
birthday varchar(255) DEFAULT NULL COMMENT '⽣⽇必填',
case_id varchar(255) NOT NULL COMMENT '病例号(时间+序列号)',
case_state int(11) unsigned NOT NULL DEFAULT '8' COMMENT '病例状态:0未完成,1正常,2删除',
create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
ealigner_treatment_plan int(11) DEFAULT '0' COMMENT '计划(1,⾆侧,2透明,3唇侧)',
gender int(11) DEFAULT NULL COMMENT '性别(0,男,1,⼥)',
patient_name varchar(255) DEFAULT NULL COMMENT '患者姓名',
patient_name_pingyin varchar(255) DEFAULT NULL COMMENT '患者姓名的拼⾳',
phone varchar(255) DEFAULT NULL COMMENT '患者电话(兼容之前数据库)',
physicion int(10) DEFAULT NULL COMMENT '主治医⽣ID',
profession varchar(255) DEFAULT NULL COMMENT '医⽣的单位',
treament_date datetime DEFAULT NULL COMMENT '⽇期',
update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', user_id int(11) DEFAULT NULL COMMENT '操作⼈Id',
remarks varchar(255) DEFAULT NULL COMMENT '备注',
operator_ip varchar(255) DEFAULT NULL COMMENT '操作⼈IP',
operator_id varchar(255) DEFAULT NULL COMMENT '操作⼈姓名',
is_valid tinyint(11) DEFAULT '1',
org_id varchar(20) DEFAULT NULL COMMENT '组织ID',
PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
你期待的结果是什么?实际看到的错误信息⼜是什么?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。