我有2张桌子,桌子Actions
和桌子Users
。Actions
->Users
是many-one
关联。
表Actions
(具有数千行)
表格Users
(最多一百行)
我试图获得最好的联接查询以获取带有WHERE
子句的计数。我需要使用包含“ myorg”的Table中的表来计数与之不同的created_by
s 。另外,(= )Actions
org_name
Users
Actions.created_by
Users.username
我目前有以下查询(产生预期结果),不知道哪个更好,是否可以进一步优化?
查询1:
select count(distinct Actions.created_by)
from Actions join
Users
on Users.org_id = Actions.org_id
where Users.org_name like '%myorg%';
查询2:
select count(distinct Users.username)
from Users join
Actions
on Actions.created_by = Users.username
where Users.org_name like '%myorg%';
最快的方法是修改第二个查询:
select count(*)
from Users u
where exists (select 1
from Actions a
where a.created_by = u.username
)
and u.org_name like '%myorg%';
然后,最佳索引打开actions(created_by)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句