mysql - 使用减法运算从两个表创建 View

标签 mysql select join group-by

我对 SQL 语法几乎是新手,我需要帮助来在 MySQL 上创建 View 。

我有一个表,其中有一个名为 ID 的 PK 列,一个名为 total_seats 的列,另一个名为 title 的列。 在第二个表中,我有多行,其中有一个 firstname 列和一个与第一个表中存在的 PK (total_seats) 相对应的 FK。

我需要创建一个 View ,在其中可以计算第一个表中存在的每个元素的 available_seats(total_seats 减去第二个表中的出现次数)。

实际上,我正在计算“占用”的座位,但连接只为我提供已参加事件的结果,因此结果是我看不到空事件的 available_seats

SELECT b.ID_event, a.*,
COUNT(*) AS occupied FROM second_table b
LEFT JOIN first_table a ON b.ID_event = a.ID
GROUP BY ID_event

最佳答案

你可以减去计数

select a.ID_event, a.total_seats, count(*) as occupied,  a.total_seats - count(*) difference
from first_table a 
left join second_table ba ON b.ID_event = a.ID
group by  a.ID_event, a.total_seats

关于mysql - 使用减法运算从两个表创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44738766/

相关文章:

mysql - 为快速计数优化 MySQL 数据库

c - 错误 "Conversion to non-scalar type requested"

mysql - 选择在其他表中有不止一次经验的用户

mysql - 加入条件 ON 与 WHERE

php - MySQL TIMESTAMP 列在更新时使用什么时区?

php - 为什么 Google Bots 的 ip 在我的数据库中保存了多次?

sql - 在coalesce中使用select设置变量

mysql - 如何使用带有连接的 SQL 查询获取所有条目

mysql - 执行 SQL JOIN 需要很长时间

php - 类、实例和对象的问题