初学者:如何使 COUNT 函数不会在 Join 中重复出现? MYSQL

Posted

技术标签:

【中文标题】初学者:如何使 COUNT 函数不会在 Join 中重复出现? MYSQL【英文标题】:Beginner: How Can I make COUNT Function not be recurring with Join? MYSQL 【发布时间】:2017-10-25 17:18:48 【问题描述】:

您好,我是一名初级程序员,并且一直在努力解决我认为有关使用 COUNT 函数的简单问题。我有桌子,我需要能够计算活动的门票数量。 requested_event 表具有事件容量。售票处有售票。

SELECT a.BoughtTickets, b.event_capacity, b.event_id
FROM
(SELECT 
COUNT(*)  AS BoughtTickets 
FROM ticket
GROUP BY event_id

) a
JOIN
(SELECT 
event_capacity,
event_id
FROM requested_event JOIN approved_event
ON requested_event.reservation_id = approved_event.reservation_id
) b

我试过了,但它回来了

    Bought Tickets  event_capacity  event_id
3                   150             1
1                   150             1
3                   1500            2
1                   1500            2

事实上,event_id 1 仅售出 3 张门票,event_id 2 仅售出 1 张门票。任何帮助将不胜感激。

【问题讨论】:

我必须赞扬这个问题;他们尝试了一些东西,这是我投赞成票的理由。 【参考方案1】:

您错过了 JOIN 条件。

SELECT a.BoughtTickets, b.event_capacity, b.event_id
FROM (SELECT event_id, COUNT(*)  AS BoughtTickets 
      FROM ticket
      GROUP BY event_id) a
JOIN (SELECT  event_capacity, event_id
      FROM requested_event 
      JOIN approved_event
        ON requested_event.reservation_id = approved_event.reservation_id ) b
 ON a.event_id = b.event_id  // here

【讨论】:

以上是关于初学者:如何使 COUNT 函数不会在 Join 中重复出现? MYSQL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ChatGPT 编写 SQL JOIN 查询

如何从表中加入一个 COUNT,然后用另一个 JOIN 影响该 COUNT

如何在 JOIN MySQL 中进行 GROUP BY 和 COUNT(*)

如何使匹配函数也适用于数值

如何让 mySql 返回 Select JOIN with Count?

在 Django 模型上执行 INNER JOIN、GROUP BY 和 COUNT