初学者:如何使 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的主要内容,如果未能解决你的问题,请参考以下文章
如何从表中加入一个 COUNT,然后用另一个 JOIN 影响该 COUNT
如何在 JOIN MySQL 中进行 GROUP BY 和 COUNT(*)