从连接两个表的查询中获得不同计数的最佳方法(多种连接可能性)

等级

我有2张桌子,桌子Actions和桌子UsersActions->Usersmany-one关联。

Actions(具有数千行)

  • ID
  • uid
  • 名称
  • 类型
  • 由...制作
  • org_id

表格Users(最多一百行)

  • ID
  • 用户名
  • org_id
  • org_name

我试图获得最好的联接查询以获取带有WHERE子句的计数我需要使用包含“ myorg”的Table中的表计数与之不同的created_bys 另外,(= Actionsorg_nameUsersActions.created_byUsers.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从连接两个表的查询中获得不同计数的最佳方法

如何进行计数查询并连接两个表

如果一个表中可能没有相应的条目,如何连接两个表并获得联接匹配次数的计数?

如何从选择查询的表中获得两个不同的计数

LINQ-连接两个表并在结构不同的视图模型中获得结果

如何创建mysql连接查询以在两个表中获得相等的值?

如何从两个相关但不同的表中获得不同的用户数

试图获得不同的表在MySQL中的两个不同的数字的差异

从两个不同表中检索的SQL连接问题

不同的SQL连接两个表

mysql连接两个不同的表

如何连接两个不同的表?

SQL查询-连接两个表

连接查询以合并两个表

SQL查询:连接两个表

需要一个SQL查询来连接两个不同数据库中的表

如何使用连接从两个不同的表中检索两个聚合列?

SQL-连接两个表时无法执行不同的计数

在连接具有不同行postgres的两个表上计数为0

连接两个表并返回数据并在单个查询中计数

是否有可能比较两个JSON数组并在空手道框架中获得不同的结果?

在mysql中连接两个表

将同一表中的两个查询连接到不同的月份和总和值

尝试在一个php函数中连接来自两个不同表的两个mysql查询时出现问题

如何比较两个不同的SQL表并获得不同的值?

连接两个查询以获得笛卡尔积

SQL:连接两个表,每行重复计数吗?

连接两个表,计数过高SQL

Linq连接两个表和计数列