我现在有a表 90w数据 b表14w数据
a,b 表都有ftbh ming 这两个字段
现在要查询两张表中字段值一样的a表记录
比如 a表的一条记录的ftbh字段值 为11 ming的值为"学成"
然后 b表也有一条记录的ftbh字段值 为11 ming的值为"学成" 且b表的ftbh 字段大于0
根据这三个条件 查找a b 表共有的数据 但显示a表的数据 这些在b表中有的数据 还需要删除
我写的low bi 查询语句
a表为sst_ocenter_qmname b表为sst_qiming_name
SELECT
oc.id, oc.ftbh, oc.ming
FROM sst_ocenter_qmname oc
JOIN
sst_qiming_name qm
ON oc.ftbh = qm.ftbh
AND qm.ftbh > 0
AND oc.ming = qm.ming
使用join好像情况也没有好转
SELECT
oc.id,oc.ftbh,oc.ming
FROM
sst_ocenter_qmname oc,
JOIN
sst_qiming_name qn
ON oc.ftbh = qn.ftbh
AND oc.ming = qn.ming
AND qn.ftbh > 0
如果要优化,优化方向考虑减少驱动表的数据量,你这个 SQL 无论哪个表作为驱动表都是全表扫描啊。
(ftbh, ming)
set optimizer_switch='mrr=on,mrr_cost_based=off,batched_key_access=on';