mysql - 尝试获取 MySql 上 3 个表的计数

标签 mysql

所以我的数据库中有 3 个表 一种是具有 hotel_id 和 status 的酒店 一个是具有partner_id和partner_name的合作伙伴 一个是partner_hotel,它有hotel_id和partner_id

我想要获取的是拥有状态 = 1 的酒店的每个合作伙伴的计数

我得到的最接近的是

select p.partner_name,count(hotel_id)
from partner_hotel ph
join partner p on p.partner_id = ph.partner_id
group by ph.partner_id;

问题是,这并不限于状态为 1 的人,而且我似乎所做的一切似乎都不起作用。

最佳答案

如果酒店包含状态和按 p.partner_id 分组,您也应该加入酒店

    select p.partner_name,count(*)
    from partner_hotel ph
    inner join partner p on p.partner_id = ph.partner_id
    inner join hotel h on ph.hotel_id = h.hotel_id
    where h.status = 1
    group by p.partner_id;

或 ig 酒店使用 ID

    select p.partner_name,count(*)
    from partner_hotel ph
    inner join partner p on p.partner_id = ph.partner_id
    inner join hotel h on ph.hotel_id = h.id
    where h.status = 1
    group by p.partner_id;

关于mysql - 尝试获取 MySql 上 3 个表的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45795269/

相关文章:

mysql - 多个 GROUP BY 根据 WHERE 条件查找多行

php - 如何从 mysql 表 PHP 中获取最大整数值

mysql - 一个查询中的多个条件在 SQL 中由 OR 运算符分隔

mysql - 在哪里放置代码来显示从 MySQL 到 Handlebars 的数据?

php - 如何使用其他信息在php中上传图像

mysql - 如何在--safe-updates模式下删除最新的一些记录

mysql - Bash:使失败的 zip 变得冗长

php - 将查询数量从 2 减少到 1

mysql - 为什么查询不会因子查询中不存在的列而失败?

mysql - 强制数据库中的数字包含 4 位数字