来自两个表的where子句中的count()

时间:2019-12-05 07:58:23

标签: mysql sql

我是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表中列代理的行数,并想计算Campaigns表中列ID的行数。

live_agents

agent
------
admin
user
staff

campaigns

id
----
1
2

预期输出:

count
-------
2

希望大家都明白我的问题

2 个答案:

答案 0 :(得分:1)

尝试一下

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

答案 1 :(得分:0)

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

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