【问题标题】:count() in where clause from two tables两个表的where子句中的count()
【发布时间】:2019-12-05 20:02:09
【问题描述】:

我是 sql 新手。我有两张桌子。我想检查每个表的计数,然后我想在每个表的计数相等时选择计数。

这是我的查询;

$ratio = "SELECT count(*) AS ratio FROM live_agents,campaigns 
          WHERE live_agents.count(agent) = campaigns.count(id)";

注意:我知道 live_agents.count(agent) 和campaigns.count(id) 不起作用。我写这行是为了清楚地了解我的情况。我想统计live_agents表中agent列的行数,想统计campaign表中id列的行数。

live_agents

agent
------
admin
user
staff

campaigns:

id
----
1
2

预期输出:

count
-------
2

希望大家理解我的问题

【问题讨论】:

  • 向我们展示一些示例表数据和预期结果。 (作为格式化文本,而不是图像。)
  • 如果 live_agents 有 5 行,活动有 3 行 - 预期结果是什么?

标签: mysql sql


【解决方案1】:

试试这个

SELECT Min(Ratio) Count FROM
(
   SELECT Count(*) AS Ratio FROM live_agents
   UNION ALL
   SELECT Count(*) AS Ratio FROM campaigns
)X

【讨论】:

    【解决方案2】:

    在 MySQL 中,可以使用LEAST():

    SELECT LEAST( (SELECT Count(*) AS Ratio FROM live_agents),
                  (SELECT Count(*) AS Ratio FROM campaigns)
                )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2015-12-28
      相关资源
      最近更新 更多