所以我的数据库中有 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/